Kurze Antwort:
const crypto = require('crypto');
const buffer = crypto.createHash('md5').update(str).digest();
Lange Antwort: Sie benötigen NodeJS‘default crypto
Modul (keine Notwendigkeit für eine Abhängigkeit hier) zu verwenden, die Nutzenfunktion und Klassen enthält. Es ist in der Lage, Hashes (zum Beispiel MD5 oder SHA-1-Hashes) für Sie mit synchronen oder asynchronen Methoden zu erstellen. Eine kurze Dienstprogrammfunktion namens crypto.createHash(algorithm)
ist nützlich, um einen Hash mit minimaler Codierung zu erstellen. Wie the docs spezifiziert:
Die algorithm
ist abhängig von den zur Verfügung stehenden Algorithmen, die von der Version von OpenSSL auf der Plattform unterstützt. Beispiele sind 'sha256'
, 'sha512'
usw. In den letzten Versionen von OpenSSL werden openssl list-message-digest-algorithms
die verfügbaren Digest-Algorithmen anzeigen.
Nun, diese createHash
Funktion gibt ein Hash
Objekt, das mit einem Strom verwendet werden kann (man kann ihm füttern, eine Datei, HTTP-Anforderung, etc.) oder eine Zeichenfolge, wie Sie gefragt. Wenn Sie eine Zeichenfolge verwenden möchten, verwenden Sie hash.update(string)
, um sie zu hashen. Diese Methode gibt den Hash selbst zurück, sodass Sie ihn mit .digest(encoding)
verketten können, um eine Zeichenfolge zu generieren (wenn encoding
festgelegt ist) oder Buffer
(falls nicht). Da Sie nach Bytes gefragt haben, glaube ich, dass eine Buffer
ist, was Sie wollen (Buffer
s sind Uint8Array
Instanzen).
Sie haben absolut Recht, ich schrieb dies in Eile und vergaß es. Bitte lass mich meine Antwort bearbeiten. – Iso
Da Ihre Antwort jetzt viel besser ist als die alte, habe ich meinen vorherigen Kommentar entfernt. Danke ;). Zusätzliche Informationen: Versuchen Sie nicht, einen Hash zweimal zu verdauen oder Sie haben einen Fehler. Ein Hash muss nur einmal verdaut werden. Und wenn Sie beispielsweise zwei Passwörter vergleichen, achten Sie auf den Typ des Objekts (wahrscheinlich eine Zeichenfolge, wenn es von einer Eingabe kommt, aber ein Objektattribut, wenn es von einem Objekt wie der Ergebnismenge einer Datenbank kommt) "Methode (inspiriert durch .equals() in Java). – Aethyn