J'implémentais le hachage de mot de passe avec salt, j'ai donc généré salt en binaire, haché le mot de passe, base64 codé le mot de passe et salt puis les stocké dans une base de données.
Maintenant, lorsque je vérifie le mot de passe, je suis censé décoder le sel en données binaires, l'utiliser pour hacher le mot de passe fourni, base64 encoder le résultat et vérifier si le résultat correspond à celui de la base de données.
Le problème est que je ne trouve pas de méthode pour décoder le sel en données binaires. Je les ai encodés en utilisant la méthode Buffer.toString mais il ne semble pas y avoir de fonction inverse.
À partir de Node.js v6.0.0 à l'aide de la méthode du constructeur est obsolète et la méthode suivante doit plutôt être utilisée pour construire un nouveau tampon à partir d'une chaîne encodée en base64:
var b64string = /* whatever */;
var buf = Buffer.from(b64string, 'base64'); // Ta-da
Pour Node.js v5.11.1 et inférieur
Construire une nouvelle Buffer
et passer 'base64'
comme second argument:
var b64string = /* whatever */;
var buf = new Buffer(b64string, 'base64'); // Ta-da
Si vous voulez être propre, vous pouvez vérifier 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
}