C#FromBase64String的Java代码等效

时间:2018-06-23 11:08:29

标签: javascript c# api base64

我正在尝试将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"

有没有办法将输出格式化为字节数组?

预先感谢

1 个答案:

答案 0 :(得分:1)

从字面上看,当我搜索“ base64中的javascript”时,我在两个不同的搜索引擎上获得了第一个成功:MDN - Base64 encoding and decoding。这将使您指向atobatob返回一个字符串(因为它早于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);