ハッシュ化とは?
ハッシュ化は指定のアルゴリズムに基づき、元の文字列を不規則な値に変換する処理を指す。
不可逆であり、ハッシュ化された値から元の値を求めることはできない。
同じ文字列を同じアルゴリズムでハッシュ化した場合、 同じ処理結果となる。
一般的な用途として、 Basic認証に使用するパスワードをDBに保存する場合は、ハッシ
ユ化が用いられる。
画面からパスワードが入力されてきた場合の検証は、ハッシュ化した値同士で突合することで事足りるため、DBから元のパスワードを取得する必要は無い。
これにより、元のパスワードが漏洩するリスクを抑えることができる。
暗号化との違い
一方、暗号化は可逆的であり、複合できる。 SSL通信は、鍵認証とハッシュ化を用いた暗号化の仕組みである。
実装
javascriptでハッシュ化を行いたい場合にはcryptoAPIを用いる。
window.crypto.subtle.digest('SHA-256', uint8Array)
ただし、暗号化ツールとしては弱く非推奨。暗号化を実施するためには、もっと複雑なフレームワーク等を必要とする。
uint8Arrayは、バッファーを扱うときに使用される配列。
コメント