【问题标题】:How to SHA-256 hash text in a chrome extension with SubtleCrypto如何使用 SubtleCrypto 在 chrome 扩展中对文本进行 SHA-256 哈希处理
【发布时间】:2020-02-02 13:32:16
【问题描述】:

我正在使用 Subtle Crypto 散列一个文本字段并获得一个 [object ArrayBuffer]。

相关代码在这里:

async function asyncCall() {
  var enc = new TextEncoder(); // always utf-8
  var enc2 = new TextDecoder(); // always utf-8
  var digest3 = enc.encode(localStorage.getItem("Item 1"));
  const digest2 = await crypto.subtle.digest("SHA-256", (digest3));

  localStorage.setItem("Item Hashed", (digest2));
  field2.value = localStorage.getItem("Item Hashed");
};

当我用这个散列任何文本(“项目 1”是使用文本字段定义的 localStorage 文本)时,我得到 [object ArrayBuffer] 作为结果。为什么我没有得到看起来像 SHA256 哈希的东西?

【问题讨论】:

标签: javascript google-chrome-extension hash sha256


【解决方案1】:

将 ArrayBuffer 转换为 Hex 字符串:

  const hashArray = Array.from(new Uint8Array(digest2));                     // convert buffer to byte array
  const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join(''); // convert bytes to hex string

https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest#converting_a_digest_to_a_hex_string

【讨论】:

    猜你喜欢
    • 2014-05-13
    • 2016-08-01
    • 2013-04-26
    • 2023-03-11
    • 2018-02-22
    • 2014-08-19
    • 2021-07-31
    • 2016-01-10
    相关资源
    最近更新 更多