小编Yan*_*ine的帖子

node.js和PHP之间的SHA1哈希差异

我想将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" );
Run Code Online (Sandbox Code Playgroud)

现在我在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));
}
Run Code Online (Sandbox Code Playgroud)

但结果与node.js函数不同.

结果应为: L0xc787MxCwJJaZjFX6MqxkVcFE =

密码为: 111111

盐是: UY68RQZT14QPgSsfaw/F + w =​​=

javascript php base64 sha1 node.js

5
推荐指数
1
解决办法
444
查看次数

标签 统计

base64 ×1

javascript ×1

node.js ×1

php ×1

sha1 ×1