📚

JavaScriptで、ハッシュ(SHA-256など)を使う方法

2023/03/21に公開

ブラウザ側の処理で、JavaScriptを使ってハッシュ値を生成したい場合があります。
いつの間にか、ブラウザに実装されていました。
もちろん、サーバーサイドで生成した値と一致します。

const algorithm = 'SHA-256';
const text   = 'This is test string.';
const uint8  = new TextEncoder().encode(text);
const digest = await crypto.subtle.digest(algorithm, uint8);
const hashed = Array.from(new Uint8Array(digest)).map(v => v.toString(16).padStart(2,'0')).join('');
console.log(hashed);

エラーになる

ただし、アクセスがセキュア(httpsやlocalhostなど)でないと使えないそうです。なぜそのような制限が必要だったのでしょうか?

https://stackoverflow.com/questions/57146558/typeerror-digest-of-undefined-in-development-environment

Discussion