#42

ハッシュ値:データの指紋を作る

hashlibで作る指紋が、元を1文字変えるだけで激変する様子を確かめます。

解説

ハッシュ関数は、入力データを固定長の文字列(ハッシュ値)に変換します。同じ入力からは必ず同じ値が出ますが、入力がほんの少し違うだけで結果が大きく変わるのが特徴です。パスワード保存や改ざん検出、ファイルの同一性確認などに使われます。 ここでは hashlib の SHA-256 を使い、1文字だけ違う2つのデータの指紋を比べます。64文字のうち何文字が違うかを数え、激変する性質を体感します。

書き方

・import hashlib: ハッシュ関数のモジュールを読み込む。
・hashlib.sha256(text.encode("utf-8")): 文字列をバイト列に変換しSHA-256ハッシュを計算。
・.hexdigest(): ハッシュ値を16進数の文字列で取り出す。
・zip(ha, hb): 2つのハッシュ値を1文字ずつ組にする。
・sum(1 for x, y in zip(...) if x != y): 異なる文字数を数える。

書いて動かす

この回の課題

1文字だけ違う2つのデータのSHA-256ハッシュ値を比べ、何文字違うか数えて激変する性質を確かめてみよう。

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

もっと本格的に使うなら

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