如何使用 Web Crypto API 创建哈希?

问题描述

我正在尝试在客户端创建 SHA-1 哈希。我正在尝试使用 Web Crypto API 执行此操作,但是当我将输出与各种在线工具提供的输出进行比较时,结果完全不同。我认为问题出在 ArrayBuffer 到 Hex 的转换中。这是我的代码:

function generateHash() {
            var value = "mypassword";
            var crypto = window.crypto;
            var buffer = new ArrayBuffer(value);
            var hash_bytes = crypto.subtle.digest("SHA-1",buffer);
            hash_bytes.then(value => document.write([...new Uint8Array(value)].map(x => x.toString(16).padStart(2,'0')).join('')));
        }

document.write 的输出应该是:

91dfd9ddb4198affc5c194cd8ce6d338fde470e2

但事实并非如此,我得到了一个完全不同长度的哈希值(应该是 40)。我可以就这个问题提出一些建议吗?谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)