You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将加密字符串b/dWBWBYDdE2A5Uh转换为指定Uint8Array?

解决方案:Base64解码得到目标Uint8Array

你的问题核心是用错了解码方式:你把字符串当成UTF-8文本编码,但实际上这个字符串是Base64编码后的二进制数据,需要用Base64解码才能得到目标的12字节Uint8Array。

验证依据

目标Uint8Array长度为12(12×8=96位),而你的输入字符串长度是16,16×6=96位,完全符合Base64的编码规则(每个Base64字符对应6位二进制)。

浏览器环境实现代码

const base64Str = "b/dWBWBYDdE2A5Uh";
// Base64解码为二进制字符串
const binaryStr = atob(base64Str);
// 转换为Uint8Array
const result = new Uint8Array(binaryStr.length);
for (let i = 0; i < binaryStr.length; i++) {
  result[i] = binaryStr.charCodeAt(i);
}
console.log(result);
// 输出:Uint8Array(12) [111, 247, 86, 5, 96, 88, 13, 209, 54, 3, 149, 33, ...]

Node.js环境实现代码

const base64Str = "b/dWBWBYDdE2A5Uh";
const result = Buffer.from(base64Str, 'base64');
console.log(result);
// Node.js的Buffer是Uint8Array的子类,输出结果与目标一致

为什么之前的方法不对

new TextEncoder().encode()的作用是将字符串的每个字符按UTF-8编码转为字节,比如字符b对应98、/对应47,这就是你得到16字节数组的原因——但你的输入字符串并非普通UTF-8文本,而是Base64编码后的二进制数据容器,必须用Base64解码才能还原原始字节。

内容的提问来源于stack exchange,提问作者Gracie williams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 02:03:22