我希望将这段 Node.js 代码转换为 PHP 代码。(可运行)
function generateHashedPass (password, salt) {
var byteSalt = new Buffer(salt, 'base64');
var bytePass = new Buffer(password, 'ucs2');
var byteResult = Buffer.concat([byteSalt, bytePass]);
return sha1.update(byteResult).digest('base64');
}
console.log(generateHashedPass('111111', 'UY68RQZT14QPgSsfaw/F+w==') === 'L0xc787MxCwJJaZjFX6MqxkVcFE=' ? "Algo correct" : "Algo wrong" );
目前我在PHP中有这样的代码:(无法工作)
public function getHashedPass($pass, $salt) {
$base_salt = unpack('H*', base64_decode($salt));
$base_pass = unpack('H*', mb_convert_encoding($pass, 'UCS-2', 'auto'));
$base_result = $base_salt[1] . $base_pass[1];
return base64_encode(sha1($base_result));
}
但是结果与 node.js 函数不同。
结果应该是: L0xc787MxCwJJaZjFX6MqxkVcFE=
当密码为: 111111
并且盐值为: UY68RQZT14QPgSsfaw/F+w==