こんにちは、今日はハッシュ値について説明します。
ハッシュ値とは
ハッシュ値とは、データを一定の計算手順をを利用して変換し、生成された値です。
変換するデータが同じであれば必ず生成されるハッシュ値も等しくなります。
具体的にどのようなことをするのか記述します。
ハッシュ値の例
skyarchと記述されたskyarch.txtというファイルがあります。
このファイルのハッシュ値を求めます。
今回はmd5sumというコマンドを使ってハッシュ値を生成します。
[ec2-user@ip-172-31-27-57 ~]$ md5sum skyarch.txt
すると、「01c293952fb71deec9fb0274a6f719d3」という値が返ってきます。
これがハッシュ値です。
冒頭で説明したように、
データ(skyarch)を一定の計算手順を利用して変換し、
生成した値(01c293952fb71deec9fb0274a6f719d3)です。
では、このハッシュ値。
どのような時に使うのか見てみましょう。
ハッシュ値の使用用途
例えば、ファイルのバックアップを取得した時。
バックアップファイルと被バックアップファイルが等しいことを確かめたいです。
先ほど挙げた例のようにファイルの中身がskyarchと、短い文であれば簡単に比較できます。
しかし、1000行を比較するとなった場合、比較が難しくなります。
そんな時、ハッシュ関数を利用してデータを比較すれば、簡単に差分が分かります。
ファイルの中身が同じであれば、生成されるハッシュ値が同じ値になります。
また、ひと文字でも違えば生成されるハッシュ値も全く違ったものになります。
ハッシュ値にはMD5やSHA1があります。
MD5形式でハッシュ値を出力する場合、例文で示したようにmd5sumコマンドを使います。
もしくはopenssl md5コマンド使います。
SHA1形式のハッシュ値を出力するにはsha1sumもしくはopenssl sha1コマンドを使います。
行数の多いファイルの差分をチェックするときはぜひこのコマンドを利用してみてください。
投稿者プロフィール
- 入社したてですが、全力で頑張ります!
最新の投稿
- Linux2016年7月14日ハッシュ値について
- セミナー・イベント2016年3月30日ACM-ICPCについての解説