【发布时间】:2018-02-27 21:23:15
【问题描述】:
我正在尝试使用 Web Crypto API 生成字符串的 SHA-1 哈希。我用来执行此操作的代码几乎是MDN SubtleCrypto.digest() page 中的第二个示例。
async function getHash(value, algorithm = 'SHA-1') {
let msgBuffer = new TextEncoder('utf-8').encode(value);
let hashBuffer = await crypto.subtle.digest(algorithm, msgBuffer);
let hashArray = Array.from(new Uint8Array(hashBuffer));
return hashArray.map(b => ('00' + b.toString(16)).slice(-2)).join('');
}
请参阅this JSFiddle 以获取演示。
我也在 Edge 中使用 this TextEncoder Polyfill。它在 Firefox 和 Chrome 中运行良好,但在 Microsoft Edge 中我只收到错误消息“SHA-1”。
我找不到有关此错误的任何信息。有人知道出了什么问题吗?有没有更好的方法来做到这一点?
【问题讨论】:
标签: microsoft-edge sha1 webcrypto-api