思わぬドハマリをしてしまったので個人的メモ。
毎回new(初期化)せずに使い回すと、同じtextを入力しても出力されるハッシュが変わってしまう。
// NG
import jsSHA from 'jssha';
const HASH_KEY = 'HASH_KEY';
const sha256 = new jsSHA('SHA-256', 'TEXT');
export function generateHash (text) {
sha256.update(text + HASH_KEY);
return sha256.getHash('HEX');
}
// OK
import jsSHA from 'jssha';
const HASH_KEY = 'HASH_KEY';
export function generateHash (text) {
const sha256 = new jsSHA('SHA-256', 'TEXT');
sha256.update(text + HASH_KEY);
return sha256.getHash('HEX');
}