わたしなりの解釈でまとめた
「なんでパスワードにはソルトが必要なの?」
-------------------
人のために優しく言葉を言い換えているので、完全に正確な文章ではありません。
-------------------
もそうですが、インターネットのサービスでは ID
と パスワード
でなのか見分けます。しかし、がハッキングしてサーバーのデータを盗んだら、他人のアカウントログインし放題...!?
これを防ぐために、たちはある方法を考えました。それは、パスワードを「暗号化」して保存してしまう方法です。
この暗号化を「ハッシュ化」といいます。
最初に登録するときに暗号化をしてサーバーに保存して、次のログインからは、ユーザーが入れたパスワードを暗号化したものと、サーバーに置いてある暗号文と比較して、同じだったら通してあげます。
暗号にするのは簡単だけど、暗号からもともとのデータに戻すことができない(めちゃくちゃ時間かかる)ので、もしにサーバーのデータを盗まれても、パスワードが暗号化されていればそのまま読めないので、ログインすることはできません。
これで!! とはいきません。ハッシュ化には特定の関数を使いますが、そのしくみはものなので、同じ暗号機を他人がこともできます。 もしこれを使って、事前に「文章」からどんな「暗号文」が出てくるか調べておけば....
元の文 | 暗号化結果そうです。 ハッシュ化するだけだと、ユーザーが事前に暗号化結果をいろんな文章で作って「辞書」を作ったら、一致してしまうかもしれません。
0000 | ds646s6
0001 | 85ghf3s
0002 | 3ht6jk4e
... | ...
( 例: 1234 + hj34H9FH06_7g+ )さらに、「ソルト」をユーザーごとに違うものにすることで、みんなが「1234」というパスワードを使っていても、ユーザーごとに暗号文がバラバラになるんだ!