在https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest我发现这个使用内部 js 模块的片段:
async function sha256(message) {
// encode as UTF-8
const msgBuffer = new TextEncoder().encode(message);
// hash the message
const hashBuffer = await crypto.subtle.digest('SHA-256', msgBuffer);
// convert ArrayBuffer to Array
const hashArray = Array.from(new Uint8Array(hashBuffer));
// convert bytes to hex string
const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join('');
return hashHex;
}
请注意,crypto.subtle
仅适用于https
或localhost
- 例如对于您的本地开发,python3 -m http.server
您需要将此行添加到您的/etc/hosts
:
0.0.0.0 localhost
重新启动 - 你可以打开localhost:8000
工作crypto.subtle
。