如何在Javascript中将md5 sum编码为base64
How to encode md5 sum to base64 in Javascript
我有一个登录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?
我不明白为什么它返回糟糕的
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
如果不了解服务器端代码,就无法更进一步。
相关文章:
- 将地理编码结果转换为php变量以发布到mysql数据库
- Json在完整日历中对数据进行了编码
- 如何对每个用户每天只允许单击一次的按钮进行编码
- Javascript字符集编码
- 如何在javascript转换编码中将一个动态值从一个表单添加到另一个页面
- base64编码的图像比intranet中的常规图像好吗
- 我不知道我的编码有什么问题.(JavaScript)
- 为什么字符编码对URL很重要
- 如何在做PHP时在base64中动态编码;preg_ replace”;
- 如何将JSON编码的PHP数组发送到同一页面上的数据表
- 如何使Jquery编码的动态下拉菜单与PHP GET变量协调工作
- JavaScript代码,用于在浏览器中显示字节数组中的PDF文件(非base64编码)
- 以HTML文件中的编码形式脱机存储图像
- 从Base64 Ionic编码和解码图像
- 错误编码的Adsense广告正在扼杀我的网站's的性能
- 如何在JS中编码URL并在PHP中解码
- 使用php在html中搜索硬编码的JavaScript变量
- 如何在JavaScript/Node中计算SHA256哈希和Base64字符串编码
- Wordpress最佳实践编码/精简模板
- 如何在Javascript中将md5 sum编码为base64