首页 > 解决方案 > 如何从 base64 解码字符串中获取前 16 个字节的数据

问题描述

我想从 Base64Decode 字符串中读取前 16 个字节的数据。这是我的代码。请提供任何建议如何获取前 16 个字节的数据。

let base64Encodeded = "Hf8Qqpr1klv+Mjle4v0yfOXbQpiXwICyEDF4bYGt/ve7h9a1cEqd5z3QpvnPMLzRpDxSBEutaOdh8SN/Yi9OK2/oUxzJY6OoidPP6UFD42uDvBSJI98RKQxwceiUKZU8AzVLIMbrr01XvB9HSTkzGXfg2Ubw7zlts7mFLgi9IG6YZ1CWNHZ0rKzxrYAfz7e2vshAZOwDm6uaDbBT/00jSA==";
let base64decodeded=atob(base64Encodeded);// Getting °SÿM#H

标签: javascriptnode.jsbase64

解决方案


当您使用 node.js(如标签所示)时,您可以使用Buffer.from然后slice使用输出来获取前 16 个字节。该encoding参数base64告诉函数将输入字符串视为 base64 编码并将其解码为字节:

let base64Encoded = "Hf8Qqpr1klv+Mjle4v0yfOXbQpiXwICyEDF4bYGt/ve7h9a1cEqd5z3QpvnPMLzRpDxSBEutaOdh8SN/Yi9OK2/oUxzJY6OoidPP6UFD42uDvBSJI98RKQxwceiUKZU8AzVLIMbrr01XvB9HSTkzGXfg2Ubw7zlts7mFLgi9IG6YZ1CWNHZ0rKzxrYAfz7e2vshAZOwDm6uaDbBT/00jSA==";
console.log(Buffer.from(base64Encoded, 'base64').slice(0,16));

结果是:

<缓冲区 1d ff 10 aa 9a f5 92 5b fe 32 39 5e e2 fd 32 7c>


推荐阅读