Python pbkdf2_hmac vs JavaScript crypto.pbkdf2Sync 不一致哈希

Python pbkdf2_hmac vs JavaScript crypto.pbkdf2Sync inconsistent hash

我正在将 Flask 应用程序迁移到 Node。我想在 Node 中生成与在 Python 中相同的密码哈希。但是,哈希值不匹配。为什么结果不同?

import hashlib, binascii    

salt = 'aa'     
input_pwd = '1'   
fromHex_salt = binascii.a2b_hex(salt)    
dk = hashlib.pbkdf2_hmac('sha1', input_pwd.encode('utf-8'), fromHex_salt, 1000, dklen=32)
python_result = binascii.hexlify(dk).decode('utf-8')
const crypto = require('crypto');
const salt = 'aa';
const input_pwd = '1';
const js_result = crypto.pbkdf2Sync(input_pwd, salt, 1000, 32, 'sha1').toString('hex');

您忘记在 node.js 中从十六进制解码盐:

const crypto = require('crypto');
const salt = 'aa';
const input_pwd = '1';
console.log(crypto.pbkdf2Sync(input_pwd, <b>new Buffer(salt, 'hex')</b>, 1000, 32, 'sha1').toString('hex'));