SHA256のハッシュをJavaScriptのWeb標準のライブラリだけで計算する
#Web_Crypto #SHA256 #ダイジェスト #メッセージダイジェスト #ハッシュ #WebブラウザのJavaScript
やりたいこと
サードパーティー製のライブラリを使わずに標準のライブラリだけでハッシュを計算したい。
Web標準で使えるWeb Cryptoを使えばできる。
方法
以下はSHA256を計算できる関数。
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
// (from: https://stackoverflow.com/a/40031979)
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
Nipp:
https://nipp.nwtgck.org/#/es2017,promise_wait/VY/LTsMwEEX3+YrZxRatkxYofahIpRv2VVeIxcR1GoNrV/aEpEL8O05SobKbx52592C4WAllbSVpZyFUOH2csUCew3cCkGWwdfZLeYI40/YI5GDjPV5e6rJUPkqks4GgiC2swaoG9trSvNewt3dxwrOQaEz3cwRMclg/gxSyQr91B7UhlnPORdG/W10t0cjaICk46KMK9OcytNEHG9QE0l/O5ESoCzJKDEuW7l434wiRjvpQfPUf4yZ8x1Kp9ko2yFjp3WkJFdE5LLMsEMpPFw9L4xoh3SnD7CHP7yeLpwWPF15R7S3cclrVwF5bmvdObEjFR9B24CzN8xTuoBXkdr0tm8w4F8Foqdh4GssPpy1L05j7J0lChRGFBZ78Ag==