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

时间:2016-07-29 12:38:42

标签: javascript api base64 md5

我想通过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 ==”? 关于我怎么做的任何想法?

非常感谢您的帮助!

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

使用How to Use BeanShell: JMeter's Favorite Built-in Component

var encodedData = window.btoa(md5Hash);

答案 2 :(得分:0)

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

相反,请尝试使用其中一个记录为here的内置函数。具体做法是:

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

答案 3 :(得分:0)

window.btoa(MD5Hash(“您的输入字符串”));不起作用,因为btoa接受md5字符串并逐字符转换该字符,因此需要向其提供一个字节数组。我最终组合了ArrayBuffer to base64 encoded stringhttps://github.com/pvorb/node-md5/issues/25

进入:

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