ich einen mongodb Server haben, Passwort durch diese erzeugt speichert node.js Code:Node.js crypto.pbkdf2Sync Passwort mit Python-Skript nicht überein
encryptPassword(password, callback) {
if (!password || !this.salt) {
return null;
}
var defaultIterations = 10000;
var defaultKeyLength = 64;
var salt = new Buffer(this.salt, 'base64');
if (!callback) {
return crypto.pbkdf2Sync(password, salt, defaultIterations, defaultKeyLength)
.toString('base64');
}
return crypto.pbkdf2(password, salt, defaultIterations, defaultKeyLength, (err, key) => {
if (err) {
callback(err);
} else {
callback(null, key.toString('base64'));
}
});
}
Aber die Authentifizierungsphase wird durch ein Python-Skript ausgeführt, nimm das Klartext-Passwort und sollte das gleiche Passwort von node.js rekonstruieren. Ich versuche das mit hashlib und pbkdf2 von django python-Modulen zu tun, aber die Ergebnisse stimmen nicht überein. Das hashlib-Skript lautet:
salt = base64.b64encode(b'salt')
hashedPassword = hashlib.pbkdf2_hmac('sha1', b'password', salt, 10000, 64)
encodedPassword = base64.b64encode(res)
Haben Sie irgendwelche Ideen?
Dank robertklep, die Decodierung Salz mit Python es funktioniert. Danke noch einmal – hasmet