Frage Gibt es Einweg-Hashfunktionen in nativem JavaScript?


Ich möchte in der Lage sein, einzigartige Token * für Benutzer basierend auf einer Hash-Zeichenfolge zu erstellen. Ich weiß, dass ich zum Beispiel eine md5 () - Bibliothek verwenden könnte, aber da der Zweck nicht kryptografisch ist, habe ich mich gefragt, ob ich etwas "out of the box" verwenden könnte. Gibt es Einweg-Hashfunktionen in nativem JavaScript?

* Ich realisiere, dass dies nicht eindeutig sein wird. Mir geht es gut mit einer kleinen Chance einer Hash-Kollision.


37
2018-02-24 22:12


Ursprung


Antworten:


nicht dass ich wüsste.

Sie können jedoch immer eine JavaScript-Implementierung von MD5 verwenden

http://pajhome.org.uk/crypt/md5/


13
2018-02-24 22:15



JavaScript hat kein natives Hashing, aber es gibt viele Bibliotheken.

ich empfehle Krypto-js: https://code.google.com/p/crypto-js/

Um beispielsweise SHA1 zu verwenden, müssen Sie einfach:

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.2/rollups/sha1.js"></script>
<script>
    var hash = CryptoJS.SHA1("Message");
</script>

7
2017-11-25 13:09



In nativem JavaScript ist nichts verfügbar. Du könntest etwas wie Murmurhasch. Es gibt eine JavaScript-Implementierung hier: https://github.com/garycourt/murmurhash-js. Ich habe es nicht benutzt, kann es also nicht verbürgen.


6
2018-02-25 01:29



Über den Horizont hinweg ist dies mit der derzeit experimentellen Web Crypto API möglich

https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API

https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto

Zum Zeitpunkt der Erstellung dieses Artikels ist es unrealistisch, in einer Produktionsumgebung zu arbeiten und wird wahrscheinlich ein bewegliches Ziel sein. Aber komm 5 Jahre, wer weiß?


4
2018-05-24 17:27