JavaScriptで文字列をハッシュ化する方法を探していた。
ライブラリを使わず、ブラウザだけでできないかなーと。
ようやく見つけたので記録に。
ソースコード
async function sha256(text){
const uint8 = new TextEncoder().encode(text)
const digest = await crypto.subtle.digest('SHA-256', uint8)
return Array.from(new Uint8Array(digest)).map(v => v.toString(16).padStart(2,'0')).join('')
}
使い方
sha256('あいうえお').then(hash => console.log(hash))
// fdb481ea956fdb654afcc327cff9b626966b2abdabc3f3e6dbcb1667a888ed9a
参考: https://developer.mozilla.org/ja/docs/Web/API/SubtleCrypto/digest