NodeJS: Cómo decodificar la cadena codificada base64 de vuelta al binario? [duplicar]


Esta pregunta ya tiene una respuesta aquí:

Estaba implementando el hashing de contraseñas con salt, así que generé salt como binario, hash la contraseña, base64 codificó la contraseña y salt luego la almacenó en la base de datos.

Ahora, cuando estoy comprobando la contraseña, se supone que debo decodificar la sal de vuelta a los datos binarios, utilícelos para hash la contraseña suministrada, base64 codifique el resultado y verifique si el resultado coincide con el de la base de datos.

El problema es que no puedo encontrar un método para decodificar la sal en datos binarios. Los codifiqué usando el Búfer.toString método pero no parece haber función inversa.

Author: Xavier_Ex, 2013-01-29

1 answers

A partir del Nodo.js v6. 0. 0 usando el método constructor ha sido obsoleto y el siguiente método debería usarse para construir un nuevo búfer a partir de una cadena codificada en base64:

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

Para Nodo.js v5.11.1 e inferiores

Construye un nuevo Buffer y pasa 'base64' como segundo argumento:

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

Si quieres estar limpio, puedes comprobar si from existe:

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
}
 437
Author: Matt Ball,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-10-05 13:03:34