#67

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

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

解説

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

書き方

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

書いて動かす

この回の課題

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

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

もっと本格的に使うなら

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