我正在尝试将C#工具切成Javascript,该Javascript需要将API密钥转换为Base64字节数组。我正在Postman中开发此程序,以便为我们提供一些API测试平台。
在C#函数中
'the label [0] is not in the [index]'
并一步一步使用'FromBase64String'函数返回以下内容。
"21ZgNVIEm7LUY95FbBHK6bYYHrbKAaZcqTKSpU+jC3MViAZvKcTqIN6sZYMSUsDuPLONCYw57bpbZe/paMWeqg=="
我一直在寻找等效的JavaScript,并使用'CryptoJS.enc.Base64.parse'函数尝试了CryptoJS库,但是它只返回十六进制字符串而不是字节数组。即
"219 86 96 53 82 4 155 178 212 99 222 69 108 17 202 233 182 24 30 182 202 1 166 92 169 50 146 165 79 163 11 115 21 136 6 111 41 196 234 32 222 172 101 131 18 82 192 238 60 179 141 9 140 57 237 186 91 101 239 233 104 197 158 170"
有没有办法将输出格式化为字节数组?
预先感谢
答案 0 :(得分:1)
从字面上看,当我搜索“ base64中的javascript”时,我在两个不同的搜索引擎上获得了第一个成功:MDN - Base64 encoding and decoding。这将使您指向atob
。 atob
返回一个字符串(因为它早于Uint8Array
)。如果不方便使用字符串,您可以通过Uint8Array.from
从字符串轻松转换为Uint8Array
:
const str = "21ZgNVIEm7LUY95FbBHK6bYYHrbKAaZcqTKSpU+jC3MViAZvKcTqIN6sZYMSUsDuPLONCYw57bpbZe/paMWeqg==";
const data = atob(str);
const array = Uint8Array.from(data, b => b.charCodeAt(0));
console.log(array);