Manière la plus facile de Java pour transformer une Chaîne en un UUID
Comment générer un valide UUID à partir d'une Chaîne? La Chaîne n'est pas seul à ce que je cherche. Plutôt, je suis à la recherche de quelque chose comme une fonction de hachage de la conversion d'une Chaîne valide UUID.
- Bien quelles sont vos exigences autour de l'unicité etc? Vous pouvez simplement appeler
hashCode
pour obtenir unint
, puis construire un UUID fondé sur ce que... mais vous feriez bien évidemment d'obtenir beaucoup plus de collisions que nécessaire. - Ce qui est dans la chaîne qui a tout de la pertinence d'un UUID à tous? Vous pouvez ainsi générer un nouveau UUID et de garder une table de mappage quelque part. Ou, éventuellement,
UUID.nameUUIDFromBytes(string.getBytes())
. - Cela ressemble à un XY Problème.
Vous devez vous connecter pour publier un commentaire.
Dans la Java de base de la bibliothèque, il y a
java.util.UUID.nameUUIDFromBytes(byte[])
.Je ne le recommande pas parce que c'est l'UUID de la 3 qui est basé sur MD5, un très rompu fonction de hachage. Vous feriez mieux de trouver une mise en œuvre de l'UUID de 5, qui est basé sur l'algorithme SHA-1 (en mieux bien aussi sorte de cassé).
Essayez ceci:
J'utilise dans mon projet et il fonctionne. Assurez-vous que vous importez des bons trucs.