我想通过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 ==”? 关于我怎么做的任何想法?
非常感谢您的帮助!
答案 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 string 与https://github.com/pvorb/node-md5/issues/25
进入:
function md5ToBase64(md5String,boolTrimLast){
var strRet = arrayBufferToBase64(hexByteStringToByteArray(md5String));
return boolTrimLast?strRet.slice(0,22):strRet;
}