【发布时间】:2021-02-18 14:43:54
【问题描述】:
假设我有一个包含 256 个字符/字符串的数组,它们要么是“1”,要么是“0”
类似
["1","1","0","0","1","0", ...]
我需要将其转入一个 ArrayBuffer(个人位是 SHA-256 哈希)
用数组中的每个填充 32 字节 ArrayBuffer 的最简单方法是什么。
【问题讨论】:
标签: javascript cryptography sha256 arraybuffer
假设我有一个包含 256 个字符/字符串的数组,它们要么是“1”,要么是“0”
类似
["1","1","0","0","1","0", ...]
我需要将其转入一个 ArrayBuffer(个人位是 SHA-256 哈希)
用数组中的每个填充 32 字节 ArrayBuffer 的最简单方法是什么。
【问题讨论】:
标签: javascript cryptography sha256 arraybuffer
可以使用join,将8个位连接在一起,然后使用parseInt以2为基数转换二进制数,然后放入arrayBuffer中。
下面是一个例子。
//lets make some demo data.
const data = new Array(256).fill().map(m => Math.random() < 0.5 ? '1' : '0');
//convert data of '0', '1' into ArrayBuffer
const buffer = new Uint8Array(32);
let bpos = 0;
for (let l = 0; l < data.length; l += 8) {
const b = data.slice(l, l + 8).join('');
buffer[bpos] = parseInt(b, 2);
bpos += 1;
}
console.log(buffer);
【讨论】: