【问题标题】:How do I turn an Array of Bits as Strings into an ArrayBuffer如何将位数组作为字符串转换为 ArrayBuffer
【发布时间】:2021-02-18 14:43:54
【问题描述】:

假设我有一个包含 256 个字符/字符串的数组,它们要么是“1”,要么是“0”

类似

["1","1","0","0","1","0", ...]

我需要将其转入一个 ArrayBuffer(个人位是 SHA-256 哈希)

用数组中的每个填充 32 字节 ArrayBuffer 的最简单方法是什么。

【问题讨论】:

    标签: javascript cryptography sha256 arraybuffer


    【解决方案1】:

    可以使用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);

    【讨论】:

    • 这很有效,“以 2 为基数的 parseInt”是一个很棒的技巧。
    猜你喜欢
    • 2014-03-14
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多