ファイルのハッシュ値: 定義、求め方など

UB3/informatics/basics/hash

このページの最終更新日: 2024/09/30

  1. 概要: ハッシュ値とは
  2. Mac でハッシュ値を計算する

広告

概要: ハッシュ値とは

ハッシュ値 hash value とは、あるデータから特定のアルゴリズム (ハッシュ関数) によって生成される文字列のことをいう (1)。元データよりも短くなるため、要約値・ダイジェスト値と呼ばれることもある。

ハッシュ値の主な特徴は以下の通り (1)。

  • 元のデータを復元することは不可能、または非常に困難。
  • 元のデータとハッシュ関数が同じであれば、ハッシュ値も同じになる。
  • ハッシュ値の長さは、元のデータ量によらず一定である。
  • 異なるデータから同じハッシュ値は生じない。

上記の特徴を活かして、ハッシュ値はたとえば以下のように使われている (1)。

  • データの同一性を検証する。たとえば、データを送信する前後にハッシュ値を計算し、それらが同一であれば、データは改竄されることなく送受信されたということになる。
  • 元のデータから得られるハッシュ値を使うことで、高速な検索を可能にするシステムがある。
  • パスワードをデータベースに保存する際に、ハッシュ値に変換する場合がある。
  • Dropbox は、ファイルのハッシュ値をブラックリストと照合することで違法ファイルを見つけているようである。

Mac でハッシュ値を計算する

Mac shell では、いくつかの異なるコマンド (つまり異なるハッシュ関数) でハッシュ値を計算できる。

md5

md5 file_path
MD5(file_path) = 409baa20127fc9ag6b090f5qe0710507

409... のような長いハッシュ値が返ってくる。

ファイルの内容を編集すると md5 hash は変わるが、ファイル名を変更してもハッシュ値は変わらない。ファイル名というのは、ファイル自体に書かれている情報ではないのかもしれない。

shasum

shasum file_path
409baa20127fc9ag6b090f5qe0710507 file_path

返ってくる値と形式は違うが、md5 と同じようにハッシュ値が計算される。より厳密にいうと、これで計算されるのは SHA-1 ハッシュ値というもので、以下と同じ結果になる。

sharum -a 1 file_path
409baa20127fc9ag6b090f5qe0710507 file_path

このほか、SHA-2 ハッシュ値というものがあり、1 以外に、224, 256, 384, 512を指定可能。数字が大きいと、返ってくるハッシュ値も長くなるようだ。


広告

References

  1. キヤノン サイバーセキュリティ情報局 ハッシュ値. Link: Last access 2024/05/31.

コメント欄

サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。