Comment générer un UUID en C#
-
Identifiant universellement unique ou UUID
-
Utilisez
Guid.NewGuid()pour générer un UUID en C#
-
Utiliser
System.Security.Cryptographypour générer un UUID en C#
-
Format GUID en C#
-
Conclusion

L’identifiant unique universel (UUID), également appelé GUID (identifiant unique global), est une norme d’identifiant unique utilisée dans le développement logiciel sur diverses plateformes.
En C#, il existe différentes méthodes pour générer des UUID. Explorons ces méthodes en détail.
Identifiant universellement unique ou UUID
UUID signifie « Universally Unique Identifier » (identifiant universellement unique). Il s’agit d’un format standardisé de 128 bits pour un identifiant unique, généralement représenté par une séquence de chiffres hexadécimaux séparés par des tirets.
Les UUID sont utilisés dans le développement logiciel et les systèmes informatiques pour identifier de manière unique des informations sans avoir besoin d’une autorité centrale de coordination.
L’unicité d’un UUID est garantie dans l’espace et dans le temps, ce qui garantit qu’il n’existe pas deux UUID identiques, même s’ils sont générés sur des systèmes différents à des moments différents. Cette unicité est obtenue en combinant divers facteurs tels que des horodatages, des identifiants de machine uniques et des nombres aléatoires.
Supposons que nous disposions déjà d’une clé primaire. Dans ce cas, nous utiliserons un GUID, car il s’agit d’un entier de 128 bits (16 octets) présentant un faible risque de duplication, ce qui permet de l’utiliser dans toutes les bases de données et sur tous les ordinateurs, évitant ainsi les conflits de données.
Les UUID sont couramment utilisés dans divers scénarios, notamment :
- Clés primaires de bases de données : les UUID peuvent servir d’identificateurs uniques pour les enregistrements de bases de données à la place d’entiers à incrémentation automatique.
- Systèmes distribués : ils sont précieux dans les systèmes distribués où plusieurs systèmes doivent générer des identifiants uniques sans coordination centrale.
- Développement logiciel : les UUID aident à identifier de manière unique des entités ou des ressources dans les applications et les systèmes logiciels.
Il existe différentes versions d’UUID, chacune étant générée à l’aide de divers algorithmes afin de garantir l’unicité. Parmi les versions courantes d’UUID, on trouve l’UUID1 (basé sur l’horodatage et l’adresse MAC), l’UUID3 et l’UUID5 (basés sur le hachage d’un identifiant d’espace de noms et d’un nom), et l’UUID4 (basé sur des nombres aléatoires ou pseudo-aléatoires).
Les UUID sont représentés sous différents formats, tels que UUIDv1, UUIDv3, UUIDv4 et UUIDv5. Quel que soit leur format, le principe de base reste le même : fournir un identifiant universellement unique sur différents systèmes et plateformes.
Utilisez Guid.NewGuid() pour générer un UUID en C#
Le .Net Framework contient des fonctionnalités intégrées permettant de créer des UUID de version 4 en langage C#.
En C#, la Guid.NewGuid() est utilisée pour générer un nouvel UUID (Universally Unique Identifier) ou GUID (Globally Unique Identifier) unique. La syntaxe de Guid.NewGuid() est la suivante :
Guid MyUniqueId = Guid.NewGuid();
Cette méthode appartient à la Guid et est une méthode statique qui ne nécessite pas la création d’une instance de Guid . Elle génère directement un nouvel UUID et le renvoie sous la forme d’une structure Guid .
Voici une explication détaillée de la syntaxe :
Guid: fait référence à la structureGuiden C#, qui représente un identifiant unique global.MyUniqueId: il s’agit du nom de la variable déclarée. Elle est de typeGuid, ce qui indique qu’elle stockera un UUID.NewGuid(): Cette méthode génère un nouvel UUID. Elle ne prend aucun paramètre et produit directement un identifiant unique à chaque fois qu’elle est appelée.
La manière la plus simple et la plus courante de générer un UUID en C# consiste à utiliser la Guid.NewGuid() méthode. Cette méthode crée un nouvel UUID à partir de nombres aléatoires ou pseudo-aléatoires.
Exemple 1 :
using System;
class Program {
static void Main() {
Guid uuid = Guid.NewGuid();
Console.WriteLine(uuid);
}
}
Sortie :
d36a1b06-9a88-4e60-b059-6a5e9fc5bbff
Dans cet exemple basique, la méthode Guid.NewGuid() génère un nouvel UUID et l’attribue à la variable uuid , puis Console.WriteLine(uuid) affiche l’UUID généré sur la console.
Exemple 2 :
using System;
using System.Diagnostics;
namespace MyUUIDGeneration {
class UUID {
public static void Main(string[] args) {
Guid myUUId = Guid.NewGuid();
string convertedUUID = myUUId.ToString();
Console.WriteLine("Current UUID is: " + convertedUUID);
}
}
}
Sortie :
Current UUID is: 123z0987-d23b-43gd-s566-000414174266
Ce code, situé dans l’ MyUUIDGeneration génère un nouvel UUID (identifiant unique universel) à l’aide de la Guid.NewGuid() méthode. Il convertit cet UUID généré en sa représentation sous forme de chaîne à l’aide de ToString() et l’affiche sur la console avec un message indiquant "Current UUID is:".
Utilisez System.Security.Cryptography pour générer un UUID en C#
Vous pouvez créer un UUID à l’aide de l’espace de noms System.Security.Cryptography , qui fournit un générateur de nombres aléatoires cryptographiquement fort.
En C#, l’espace de noms System.Security.Cryptography fournit des classes et des méthodes pour les opérations cryptographiques. Voici la syntaxe de base pour utiliser cet espace de noms en C# :
using System.Security.Cryptography;
Cette directive using permet d’accéder aux types et méthodes du System.Security.Cryptography espace de noms dans l’ensemble du fichier de code où elle est incluse.
Une fois cette directive incluse, vous pouvez accéder à diverses classes et méthodes cryptographiques disponibles dans l’espace de noms pour effectuer des opérations telles que le chiffrement, le déchiffrement, le hachage, la génération de nombres aléatoires sécurisés, les signatures numériques, et plus encore.
Exemple :
using System;
using System.Security.Cryptography;
class Program {
static void Main() {
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
byte[] bytes = new byte[16];
rng.GetBytes(bytes);
Guid uuid = new Guid(bytes);
Console.WriteLine(uuid);
}
}
Sortie :
0dbae7ab-3bd7-0bd5-7551-d4eb5ec6a9bc
Explication :
RNGCryptoServiceProvider()crée un générateur de nombres aléatoires cryptographiquement sécurisé.rng.GetBytes(bytes)remplit le tableau d’octetsbytesavec des octets aléatoires.new Guid(bytes)génère un UUID à partir des octets obtenus par le générateur de nombres aléatoires.Console.WriteLine(uuid)affiche l’UUID généré.
Format GUID en C#
Le GUID est une structure présente dans l’ System espace de noms. Une chaîne d’entiers hexadécimaux constitue l’approche la plus systématique pour écrire un GUID dans ce langage.
Quelque chose comme ceci : { 123z0987-d23b-43gd-s566-000414174266 }.
Identifiant GUID en C#
GUID est le nom donné à cet identifiant unique. Généré par un programme Windows, le GUID peut être utilisé pour identifier un élément, un logiciel, une pièce ou un enregistrement de référentiel spécifique.
Imaginons un système distribué dans lequel de nombreux programmeurs travaillent de manière indépendante et génèrent un identifiant. Deux programmeurs peuvent générer le même identifiant, ce qui pose un problème lors de la fusion des systèmes.
Par conséquent, nous devons utiliser le GUID lorsque nous avons plusieurs systèmes ou utilisateurs indépendants générant des identifiants qui doivent être uniques. Lorsque nous créons une interface ou une méthode en programmation, nous lui attribuons un identifiant unique qui sera utilisé pour l’appeler.
Le GUID empêche les collisions de données. Il est simple d’intégrer des bases de données entre différentes machines, réseaux, etc. Il vous aide à déterminer votre clé principale avant d’insérer un enregistrement. Ce n’est pas facile à déterminer.
Inconvénients du GUID en C#
Tout GUID présente à la fois des avantages et des inconvénients. Dans une base de données contenant 10 000 entrées, le GUID occupera 160 000 octets.
Un autre inconvénient est que la plupart des primary clés des autres tables sont des clés étrangères. À lui seul, le GUID occupe environ 60 octets pour seulement 5 entrées de clés étrangères, ce qui devient au fil du temps la principale source de problèmes de performances.
Une technique de désordre aléatoire génère un GUID aléatoire. En tant qu’horodatage d’insertion, nous devons appliquer plusieurs méthodes de tri.
Conclusion
Cet article explore les UUID (identificateurs uniques universels) en C#, en abordant leur importance et leurs applications pratiques dans le développement logiciel. Il détaille diverses méthodes de génération d’UUID :
- Utilisation de
Guid.NewGuid(): cette méthode est présentée pour générer des UUID de manière simple. Des exemples et la syntaxe sont fournis, démontrant sa simplicité et son efficacité. - Utilisation de l’espace de noms
System.Security.Cryptography: l’article explique comment les fonctionnalités cryptographiques peuvent être utilisées pour créer des UUID sécurisés. Des exemples de code illustrent le processus de génération d’UUID dotés d’une force cryptographique.
De plus, l’article aborde le format, l’utilité, les avantages et les inconvénients des GUID (identificateurs uniques globaux) en C#. Il met l’accent sur leur rôle d’identificateurs uniques, traite des considérations relatives aux implémentations de bases de données et souligne les compromis liés à l’utilisation des GUID.
Vous appréciez nos tutoriels ? Abonnez-vous à DelftStack sur YouTube pour nous aider à créer davantage de guides vidéo de haute qualité. S’abonner
Source de l’article