解説
ハッシュ関数は、入力データを固定長の文字列(ハッシュ値)に変換します。同じ入力からは必ず同じ値が出ますが、入力がほんの少し違うだけで結果が大きく変わるのが特徴です。パスワード保存や改ざん検出、ファイルの同一性確認などに使われます。
ここでは 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 なら、書いたコードを保存して業務の自動化まで進められます。学習センターはずっと無料です。