#67

ハッシュは元に戻せない・改ざん検知

ハッシュの一方向性を確かめ、文書の改ざんを検知できることを学びます。

解説

ハッシュ関数は一方向です。同じ入力からは必ず同じハッシュ値が出ますが、ハッシュ値から元の文を計算で復元することはできません。さらに、入力がほんの少し変わるだけでハッシュ値は大きく変化します。 この性質を使うと、文書の改ざん検知ができます。元の文のハッシュ値を記録しておき、後で計算し直して一致しなければ、どこかが書き換えられたと分かります。 契約書やソフトウェア配布の正当性確認に使われる重要な仕組みです。

書き方

hashlib.sha256(バイト列).hexdigest() — SHA-256ハッシュを16進文字列で求める。
・文字列.encode(): 文字列をバイト列に変換。
・h1[:16]: ハッシュ文字列の先頭16文字をスライス表示。
・== でハッシュ値が一致するかを比較し改ざんを検知。

書いて動かす

この回の課題

元の文と改ざん文のハッシュ値を比べ、一致しないことで改ざんを検知できると確かめてみよう。

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

自分のPCでも続けてみませんか

Windows版 InsightPy は Python を同梱しているので、環境構築なしで同じコードを書いて実行できます。 書いたコードを保存しておけるほか、ステップ実行で変数の変化を1行ずつ確かめられます。 個人の学習や私的な目的でのご利用は、31日目以降も無料です(スクリプトの保存は10本まで)。 このブラウザ版の学習センターも、引き続き無料でお使いいただけます。