gpt4 book ai didi

javascript - 如何在Javascript中将md5和编码为base64

转载 作者:行者123 更新时间:2023-11-28 15:15:37 24 4
gpt4 key购买 nike

我有一个登录 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==

我猜加密货币不适用于要转换的字符串内的 base64/md5?

我不明白为什么它返回不好

最佳答案

函数 CryptoJS.MD5(cred.password) 返回一个 typedArray,而不是字符串。它有一个 toString 函数,它返回常见的十六进制表示形式。所有这些都不会很好地结合在一起。您需要探测客户端/服务器字符串以查看一个发送的内容和另一个接受的内容,但您应该一直使用十六进制字符串表示形式直到最终的 Base64 编码,混合它们不太健康。在OP给出一些评论后编辑

var hash = CryptoJS.MD5(cred.password); // password is `password`
// "hash" contains a typed array, needs to be base64
hash = hash.toString(CryptoJS.enc.Base64); // X01jw2Jap2XWHYMn3riCz5k=
var digest = "john.doe,"+hash+",QCiTzbXCAYA3AvDgYN3MuBwY/1i89q6TfW7aVS1Av1c=";
digest = CryptoJS.MD5(digest);
digest = digest.toString(CryptoJS.enc.Base64); // jH+dH56sKswaDDfeCzDY0A==
// send "digest" to server

如果不了解服务器端代码,就无法进一步进行。

关于javascript - 如何在Javascript中将md5和编码为base64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34110192/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com