ハッシュ
ハッシュは、ある値を別の値に変換する関数です。データのハッシュ化はコンピューターサイエンスで一般的に行われており、さまざまな目的に使用されます。例として、暗号技術、圧縮、チェックサムの生成、データのインデックス化などがあります。
ハッシュ化は、元のデータを別の値で隠すため、暗号技術に適しています。ハッシュ関数を使うと、ハッシュテーブルから値を調べることによってのみデコードできる値を生成できます。このテーブルには、配列、データベース、その他のデータ構造を使用できます。優れた暗号学的ハッシュ関数は不可逆的であり、逆算できません。
非可逆画像圧縮やメディア圧縮など、さまざまな種類の圧縮では、ファイルサイズを小さくするためにハッシュ関数を組み込むことがあります。データをより小さな値にハッシュ化することで、メディアファイルをより小さな断片に圧縮できます。この種類の一方向ハッシュは元に戻せませんが、必要なディスク容量が少なくて済む、元のデータの近似値を生成できます。
ハッシュは、ファイルの完全性を検証するチェックサムの作成にも使用されます。チェックサムは、ファイル内のビットや、ディスクイメージなどのデータブロックに基づいて生成される小さな値です。ファイルのコピー(インターネットからダウンロードしたファイルなど)に対してチェックサム関数を実行すると、元のファイルと同じハッシュ値が生成されるはずです。ファイルから同じチェックサムが生成されない場合、ファイル内の何かが変更されています。
最後に、ハッシュはデータのインデックス化に使用されます。ハッシュ化した値を使うと、データをハッシュテーブル内の個々の「バケット」に割り当てることができます。各バケットには一意のIDがあり、元のデータへのポインターとして機能します。これにより、元のデータより大幅に小さいインデックスが作成され、値をより効率的に検索してアクセスできるようになります。
知識をテストする