Il mio codice php genera un hash utilizzando password_hash
che memorizzo in un database. Di seguito è riportato il codice PHP:Verificare l'hash della password in nodejs che è stato generato in php
$hash = password_hash($value, PASSWORD_BCRYPT, array('cost' => $cost));
Vorrei verificare/verificare la password contro questo hash in nodejs.
Ho visto molti moduli di nodi (bcrypt, phpass, node-bcrypt), ma tutti mi danno false. Di seguito è riportato un hash di esempio generato in php e che sto cercando di verificare in nodejs.
var hash = '$2y$08$9TTThrthZhTOcoHELRjuN.3mJd2iKYIeNlV/CYJUWWRnDfRRw6fD2';
var bcrypt = require('bcrypt');
bcrypt.compare("secret", hash, function(err, res) {
console.log(res);
});
(Qui segreto è vera password)
mia soluzione attuale è quella di chiamare uno script php tramite nodo per verificare (per chi ha bisogno di una soluzione alternativa)
var exec = require('child_process').exec;
var cmd = 'php verify.php password encryped_pasword';
exec(cmd, function (error, stdout, stderr) {
// output is in stdout
console.log(stdout);
//If stdout has 1 it satisfies else false
});
Si tratta di un hack e non una buona risposta a questo problema. C'è un modo per verificare la password in nodejs senza utilizzare una soluzione alternativa come questa?
Avete dato un'occhiata a https://www.npmjs.org/package/bcrypt-nodejs – o0rebelious0o
@ o0rebelious0o I ho provato a fare un paragone usandolo, non dà nulla nemmeno falso e nessun errore – Sudesh
Attenzione, $ costo deve corrispondere a getRounds(), questo è h ow bcrypt funziona. – erenon