web-dev-qa-db-fra.com

Créez un GUID dans Java

Quels sont les meilleurs moyens de créer un GUID en Java?

347
Chris Dutrow

Jetez un coup d'œil à la classe UUID fournie avec Java 5 et versions ultérieures.

Par exemple:

  • Si vous voulez un UUID aléatoire, vous pouvez utiliser la méthode randomUUID .
  • Si vous voulez un UUID initialisé à une valeur spécifique, vous pouvez utiliser la méthode constructeur de l'UUID ou la méthode fromString .
318
Mark Byers

Java.util.UUID.randomUUID();

389
Kaleb Brasee

Cela dépend du type de UUID que vous voulez.

  • La classe standard Java UUID génère Version 4 (aléatoire) UUID. (UPDATE - Version (nom) Des UUID peuvent également être générés.) Il peut également gérer d'autres variantes. il ne peut pas les générer. (Dans ce cas, "handle" signifie construire des instances UUID à partir de long , byte[] ou String représentations, et fournit des accesseurs appropriés .)

  • L'implémentation Java UUID Generator (JUG) prétend prendre en charge "tous les 3 types" officiels "d'UUID définis par RFC-4122 " ... bien que la RFC en définisse 4 types et mentionne un 5ème type.

Pour plus d'informations sur les types et les variantes d'UUID, il existe un bon résumé dans Wikipedia , et les détails sanglants se trouvent dans RFC 4122 et les autres spécifications.

31
Stephen C

Juste pour étendre la réponse de Mark Byers avec un exemple:

import Java.util.UUID;

public class RandomStringUUID {
    public static void main(String[] args) {
        UUID uuid = UUID.randomUUID();
        System.out.println("UUID=" + uuid.toString() );
    }
}
19
Anton Belev

Les autres réponses sont correctes, notamment celle-ci par Stephen C .

Atteindre l'extérieur de Java

Génération d'un UUID la valeur dans Java est limitée à Version 4 (aléatoire) pour des raisons de sécurité.

Si vous souhaitez utiliser d'autres versions d'UUID, vous pouvez, par exemple, laisser votre application Java sortir du JVM pour générer des UUID en appelant:

  • Utilitaire de ligne de commande
    Livré avec presque tous les systèmes d’exploitation.
    Par exemple, uuidgen trouvé dans Mac OS X, BSD et Linux.
  • Serveur de base de données
    Utilisez JDBC pour récupérer un UUID généré sur le serveur de base de données.
    Par exemple, l’extension uuid-ossp est souvent associée à Postgres . Cette extension peut générer les valeurs des versions 1, 3 et 4, ainsi que quelques variantes:
    • uuid_generate_v1mc() - génère un UUID version 1, mais utilise une adresse MAC de multidiffusion aléatoire au lieu de la véritable adresse MAC de l'ordinateur.
    • uuid_generate_v5(namespace uuid, name text) - génère un UUID version 5, qui fonctionne comme un UUID version 3, à l'exception du fait que SHA-1 est utilisé comme méthode de hachage.
  • Service Web
    Par exemple, ID Generator crée les versions 1 et 3 ainsi que valeurs nulles et GUID .
6
Basil Bourque