코드 Node.js를 파이썬 스크립트와 일치하지 않습니다Node.js를 crypto.pbkdf2Sync 암호는 내가 이것에 의해 생성 된 암호를 저장하는 MongoDB를 서버가
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'));
}
});
}
그러나 인증 단계는 파이썬 스크립트에 의해 실행되는 일반 텍스트 암호를 사용하고 node.js.와 동일한 암호를 재구성해야합니다. django python 모듈에서 hashlib와 pbkdf2를 모두 사용하려고했지만 결과가 일치하지 않았습니다. hashlib 스크립트는 다음과 같습니다.
salt = base64.b64encode(b'salt')
hashedPassword = hashlib.pbkdf2_hmac('sha1', b'password', salt, 10000, 64)
encodedPassword = base64.b64encode(res)
어떤 아이디어가 있습니까? 당신의 노드 코드에서
감사 robertklep을 :
또는 소금으로 Base64로 인코딩 된 문자열을 취할 수있는 파이썬 코드를 허용하고,이를 디코딩 :
대신, 파이썬 코드에서 이것을 사용 그것은 파이썬과 소금 작동합니다. 다시 한 번 감사드립니다. – hasmet