402 Stimmen

NodeJS: Wie dekodiere ich base64 kodierte Strings zurück nach binär?

Ich habe Passwort-Hashing mit Salt implementiert, also habe ich Salt als Binärdatei generiert, das Passwort gehasht, das Passwort und Salt base64-kodiert und dann in der Datenbank gespeichert.

Wenn ich nun das Passwort überprüfe, soll ich das Salt zurück in binäre Daten dekodieren, es verwenden, um das angegebene Passwort zu hashen, das Ergebnis base64-kodieren und prüfen, ob das Ergebnis mit dem in der Datenbank übereinstimmt.

Das Problem ist, dass ich keine Methode finde, um das Salz wieder in Binärdaten zu dekodieren. Ich habe sie mit der Methode Buffer.toString kodiert, aber es scheint keine Umkehrfunktion zu geben.

845voto

Matt Ball Punkte 343109

Ab Node.js v6.0.0 mit die Konstruktormethode ist veraltet und die folgende Methode sollte stattdessen verwendet werden, um einen neuen Puffer aus einer base64-kodierten Zeichenfolge zu erstellen:

var b64string = /* whatever */;
var buf = Buffer.from(b64string, 'base64'); // Ta-da

Für Node.js v5.11.1 und niedriger

Konstruieren Sie eine neue Buffer y Pass 'base64' als zweites Argument:

var b64string = /* whatever */;
var buf = new Buffer(b64string, 'base64'); // Ta-da

Wenn Sie sauber sein wollen, können Sie prüfen, ob from besteht:

if (typeof Buffer.from === "function") {
    // Node 5.10+
    buf = Buffer.from(b64string, 'base64'); // Ta-da
} else {
    // older Node versions, now deprecated
    buf = new Buffer(b64string, 'base64'); // Ta-da
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X