SHA256のハッシュをJavaScriptのWeb標準のライブラリだけで計算する
やりたいこと
サードパーティー製のライブラリを使わずに標準のライブラリだけでハッシュを計算したい。
方法
code:js
async function sha256(str) {
// Convert string to ArrayBuffer
const buff = new Uint8Array([].map.call(str, (c) => c.charCodeAt(0))).buffer;
// Calculate digest
const digest = await crypto.subtle.digest('SHA-256', buff);
// Convert ArrayBuffer to hex string
return [].map.call(new Uint8Array(digest), x => ('00' + x.toString(16)).slice(-2)).join('');
}
使い方
code:js
(async () => {
const digest = await sha256("hello");
// 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
})();
SHA-256の他に以下の値を使えば他のハッシュ値も計算する
SHA-1
SHA-256
SHA-384
SHA-512