我想像symfony2一样使用密码,但是在javascript中。这是我在Javascript中的代码:
this.hashPassword = function(salt, clearPassword) {
var digest = "";
console.log('==== STARTING HASHING PASSWORD ====');
var salted = null;
if (!salt || salt == "") {
salted = clearPassword;
} else {
salted = clearPassword + "{" + salt + "}";
}
digest = CryptoJS.SHA512(salted);
for (var i=1; i<5000; i++) {
digest = CryptoJS.SHA512(digest.toString(CryptoJS.enc.Latin1)+salted);
}
digest = digest.toString(CryptoJS.enc.Base64);
console.log('==== ENDING HASHING PASSWORD ====');
console.log(digest);
return digest;
};
我获得的哈希密码在数据库中并不相同,我真的不知道为什么。我在Symfony2中的密码在SHA512中使用盐进行哈希处理,我确定,因为我在PHP中测试代码并且它有效。
你能帮帮我吗?谢谢
答案 0 :(得分:0)
根据this answer是
SHA1 [..] not made for security [..] grab any implementation of BCrypt
但有一个解释是,换行可能导致不同的哈希值。在他们的情况下,可以使用Base64.encodeToString(byteData, Base64.NO_WRAP)
关闭此功能。