问题描述
我正在尝试在客户端创建 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 (将#修改为@)