繁体   English   中英

在JavaScript中获取MD5哈希并将其转换为base 64

[英]Getting MD5 hash in JavaScript and converting it to base 64

我想通过JavaScript使用一组REST API,我正在阅读解释如何实现身份验证的文档。 以下说明以伪代码说明,但我在理解如何在JavaScript中实现它时遇到了一些问题(我的JS级别非常基础)。 这是不清楚的部分:

= FromBytesToBase64String(MD5Hash("{\n    \"data\": {\n        \"type\": \"company\",\n        \"id\": \"879f2dfc-57ea-4dbb-96c7-c546f8812f1e\",\n        \"external_1_value\": \"Updated value\"\n    }\n}"))

基本上我应该计算有问题的字符串的MD5哈希,然后我应该在base 64字符串中编码它如果我理解得很好。

文档显示了子步骤中的流程:

= FromBytesToBase64String(b'eC \\ xcda \\ xa3 \\ xa7 \\ xaf \\ xa53 \\ x93 \\ xb4。\\ xa2 \\ xb1 \\ xe3]')

然后是最终结果:

“ZUPNYaOnr6Uzk7QuorHjXQ ==”

我试图通过使用crypto.js库来做同样的事情,我得到一个MD5哈希字符串但是我怎么能得到这个值“ZUPNYaOnr6Uzk7QuorHjXQ ==”? 有关如何做到这一点的任何想法?

非常感谢您的帮助!

使用btoa()函数获取base64编码的字符串。

使用WindowBase64.btoa()

var encodedData = window.btoa(md5Hash);

最终结果是base64编码的字符串。 FromBytesToBase64String函数是产生它的函数,但这不是JavaScript中的标准函数。

相反,请尝试使用此处记录的其中一个内置函数。 特别:

window.btoa(MD5Hash("Your input string"));

window.btoa(MD5Hash(“你的输入字符串”)); 不起作用,因为btoa采用md5字符串并按字符转换该字符,因此你需要为它提供一个字节数组。我最终将ArrayBuffer与base64编码的字符串组合在一起https://github.com/pvorb/node-md5/问题/ 25

进入:

function md5ToBase64(md5String,boolTrimLast){
    var strRet = arrayBufferToBase64(hexByteStringToByteArray(md5String));
    return boolTrimLast?strRet.slice(0,22):strRet;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM