【发布时间】:2015-12-05 20:00:14
【问题描述】:
我有一个登录 web 表单,用户写下他的密码,我必须在 MD5 上加密它,总和为 64。我正在用 CryptoJS 做这样的事情:
var hash = CryptoJS.MD5(cred.password); // password is `password`
cred.password = hash.toString(CryptoJS.enc.Base64); // X03MO1qnZdYdgyfeuILPmQ== -- IT IS OK!
这很好用。然后我必须将以下字符串也转换为 MD5 和 Base64:
var digest = "john.doe,"+hash.toString()+",QCiTzbXCAYA3AvDgYN3MuBwY/1i89q6TfW7aVS1Av1c=";
我再次这样做:
var hash1 = CryptoJS.MD5(digest);
digestResult = hash1.toString(CryptoJS.enc.Base64);
它返回i4a9M2b6l+yBZLHc3bXWMA==,但服务器对此组合的预期是6R1HZqYJFfRQUA0L/hqCEA==
我猜 Crypto 不适用于要转换的字符串中的 base64/md5?
我不明白为什么它返回错误
【问题讨论】:
-
"密码,我必须在 MD5 上加密",请使用 bcrypt 而不是 MD5。
-
对不起,我必须用MD5,我不能用别的东西
-
服务器端方法在MD5中,我无法更改方法
-
不要指望任何回复,MD5 不应该用于密码散列。
-
我知道,遗憾的是我没有决定这个
标签: javascript base64 md5 cryptojs