#66

ハッシュとパスワード保存

パスワードを平文で保存せず、ハッシュ値で照合する仕組みを学びます。

解説

正しく作られたシステムは、パスワードそのものを保存しません。代わりにハッシュ関数(ここではSHA-256)で計算したハッシュ値を保存します。 ログイン時は入力されたパスワードを同じ方法でハッシュ化し、保存値と一致するかを比べます。こうすればデータが漏えいしても元のパスワードは分かりません。 平文を保存しないことが安全設計の基本です。実運用ではさらに「ソルト」を加えますが、まずはこの一方向照合の流れを理解しましょう。

書き方

hashlib.sha256(バイト列) — SHA-256ハッシュを計算するオブジェクトを返す。
・文字列.encode(): 文字列をバイト列に変換(ハッシュ化に必要)。
・.hexdigest(): ハッシュ値を16進文字列で取り出す。
・== でハッシュ値どうしを比較して照合する。

書いて動かす

この回の課題

パスワードをSHA-256でハッシュ化して保存し、入力をハッシュ化して一致するかで照合してみよう。

コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。

もっと本格的に使うなら

Windows版 InsightPy なら、書いたコードを保存して業務の自動化まで進められます。学習センターはずっと無料です。