解説
正しく作られたシステムは、パスワードそのものを保存しません。代わりにハッシュ関数(ここではSHA-256)で計算したハッシュ値を保存します。
ログイン時は入力されたパスワードを同じ方法でハッシュ化し、保存値と一致するかを比べます。こうすればデータが漏えいしても元のパスワードは分かりません。
平文を保存しないことが安全設計の基本です。実運用ではさらに「ソルト」を加えますが、まずはこの一方向照合の流れを理解しましょう。
書き方
hashlib.sha256(バイト列) — SHA-256ハッシュを計算するオブジェクトを返す。 ・文字列.encode(): 文字列をバイト列に変換(ハッシュ化に必要)。 ・.hexdigest(): ハッシュ値を16進文字列で取り出す。 ・== でハッシュ値どうしを比較して照合する。
書いて動かす
この回の課題
パスワードをSHA-256でハッシュ化して保存し、入力をハッシュ化して一致するかで照合してみよう。
コードはあなたの端末の中だけで動きます(サーバーには送られません)。進み具合もこのブラウザに保存されます。
もっと本格的に使うなら
Windows版 InsightPy なら、書いたコードを保存して業務の自動化まで進められます。学習センターはずっと無料です。