我正在将现有的基于php的网站转换为node.js应用程序,我需要将此加密方法从php复制到js.
private static $_passwordSalt = 'd2g6IOP(U(&§)%U§VUIPU(HN%V/§§URerjh0ürfqw4zoöqe54gß0äQ"LOU$3wer';
public static function getCryptedPassword($password = 'password') {
return sha1(md5(self::$_passwordSalt.$password));
}
到目前为止,我已经尝试过了,但是没有返回相同的结果:
UserSchema.methods.hashPassword = function(password) {
var salt = 'd2g6IOP(U(&§)%U§VUIPU(HN%V/§§URerjh0ürfqw4zoöqe54gß0äQ"LOU$3wer'
var md5Hash = md5(password + salt);
var hash = sha1(md5Hash);
return hash;
};
解决方法:
请尝试以下方法:
var crypto = require('crypto');
var salt = 'd2g6IOP(U(&§)%U§VUIPU(HN%V/§§URerjh0ürfqw4zoöqe54gß0äQ"LOU$3wer'
var password = 'pass';
var hashMd5 = crypto.createHash('md5').update(salt + password).digest("hex");
var hasSha1 = crypto.createHash('sha1').update(hasMd5).digest("hex");
console.log(hashSha1);
作为文件:hash.js
并将这些代码作为hash.php:
<?php
$_passwordSalt = 'd2g6IOP(U(&§)%U§VUIPU(HN%V/§§URerjh0ürfqw4zoöqe54gß0äQ"LOU$3wer';
$password = 'pass';
//echo md5("phinware");
echo sha1(md5($_passwordSalt.$password));
echo "\n";
然后执行两个文件:
>> PHP hash.php
>>节点hash.js
我的结果:
两者:3cbd1242e8e510a16f39d7e0bfd18a0e03d0de3f