Comment créer convivial Identifiants uniques, Uuid ou d'autres identifiants uniques en Java

J'ai l'habitude d'utiliser l'UUID de la classe pour générer des Identifiants uniques. Cela fonctionne bien si ces Identifiants sont utilisés par les systèmes techniques seulement, ils ne se soucient pas combien de temps ils sont:

System.out.println(UUID.randomUUID().toString());

> 67849f28-c0af-46c7-8421-94f0642e5d4d

Est là une belle façon de créer convivial Identifiants uniques (comme ceux de tinyurl) qui sont un peu plus courtes que les Uuid? Cas d'utilisation: vous voulez envoyer des Identifiants par e-Mail à vos clients qui visitent votre site, puis inscrivez le nombre dans une forme, comme un bon ID.

Je suppose que Uuid se produit également au travers de l'ensemble de la gamme de la 128 Bits de large de l'UUID. Alors serait-il sage d'utiliser le bas de 64 Bits par exemple?

System.out.println(UUID.randomUUID().getLeastSignificantBits());

Tout commentaire est le bienvenu.

N'est-il pas mieux, si vos utilisateurs peuvent cliquer sur un lien où l'id est inclus et vous prendre soin de saisie de l'id dans le champ de formulaire ou de lire les paramètres, puis vous n'avez pas à faire de l'id de l'utilisateur de l'amicale
Bien sûr, mais l'id s'affiche dans les médias imprimés. Donc, le plus court sera le mieux.
Pour imprimable Url, de minimiser la probabilité d'erreur humaine à l'aide de Base32 l'encodage. Personnellement, je pense que la z-base-32 format est le meilleur pour ce but, car il a été spécialement conçu pour être utilisé par les humains.
Je suis sûr que TinyURL et d'autres raccourcisseurs d'url simplement de maintenir une liste de toutes les Uuid et de lui attribuer une auto-incrémenté d'index, et utilise la base-64 version que l'affichage de l'ID. C'est la façon dont vous obtenez des URLs comme http://tinyurl.com/2 et http://bit.ly/2.

OriginalL'auteur basZero | 2011-01-12