メモと備忘録

メモや備忘録を残します

パスワードは暗号化ではなくハッシュ化!!

とある開発現場で、パスワードが暗号化されてDBに保持されていた事を思い出しました。

パスワードは暗号化ではダメだったはず・・・
という事で調べてみました。

暗号化とは

データを暗号化のアルゴリズムRSA・DES・AES等)に従って、一見解読不能な内容を求めます。
このデータは用意しておいた暗号鍵を用いて、復号する事が出来ます。

ハッシュ化とは

データをハッシュアルゴリズムmd5sha1・sha-256等)に従って、ハッシュ値と呼ばれる規則性のない固定長の値を求めます。
このデータは不可逆変換なので、元のデータへ戻すことは現実的ではありません。

結論

もしも暗号化したパスワードを悪意のある第三者に抜き取られた場合、復号されてしまうかもしれません。
そうでなくとも、パスワードは復元する必要がないものなので、余計なリスクは抱えない方が良いでしょう。
ログイン認証等も、ユーザの入力値をハッシュ化したものと照合すれば可能です。

もちろん、平文で保持なんて事は論外です!