2014-09-03 15 views
6

Come generare un UUID valido da una stringa? Lo String da solo non è quello che sto cercando. Piuttosto, sto cercando qualcosa come una funzione di hash che converta qualsiasi stringa in un UUID valido.Il modo più semplice in Java per trasformare String in UUID

+1

Bene quali sono le vostre esigenze in merito all'unicità, ecc.? Potresti * semplicemente * chiamare 'hashCode' per ottenere un' int', e quindi costruire un UUID basato su quello ... ma ovviamente otterrai molte più collisioni del necessario. –

+2

Cosa c'è nella stringa che ha rilevanza per un UUID? Si può anche solo generare un nuovo UUID e mantenere una tabella di mappatura da qualche parte. O forse ['UUID.nameUUIDFromBytes (string.getBytes())'] (http://docs.oracle.com/javase/7/docs/api/java/util/UUID.html#nameUUIDFromBytes (byte [])) . – EJP

+0

Questo sembra un problema XY. – Raedwald

risposta

7

Nella libreria principale Java, c'è java.util.UUID.nameUUIDFromBytes(byte[]).

Non lo consiglierei perché è UUID 3 che è basato su MD5, una funzione hash molto spezzata. Faresti meglio a trovare un'implementazione di UUID 5, che è basata su SHA-1 (meglio anche se anche sort of broken).

+0

Questo è ancora meglio - ho suggerito di farlo manualmente. – boky

+0

qualsiasi equivalente js? – Abhijeet

+0

@Abhijeet Non lo saprei. Potresti chiederlo come una domanda separata. –

Problemi correlati