アニメ『はんだくん』 「ばらかもん」のスピンオフです。「ばらかもん」の方は、一度も見たことがなく、いきなりこのアニメから入ったので戸惑いましたが、やはりギャグアニメってのは、すんなり理解できて良いですね。上の画像は一話に登場した「森 麻衣子」と「ジュリ」のつもりで描きました。二人は同じ女子高生ですが、頭の大きさが2倍以上違います。この二人が異様に面白いので視聴継続予定です。
同じ女子高生でも「麻衣子」と「ジュリ」は中身が異なりますが(外見もですが)、今回は、ファイル名やサイズ、見た目は同じだけど異なるファイルについて考えます。
※下の画像の2つの端末ウィンドウは、それぞれ別々のPCと考えてください。
まだLinuxを触って間もない頃、別々のPCにあるファイルが一致しているかどうか確認したいとき、ファイルサイズで確認を済ませていたことがありました。
一見、タイムスタンプは違えども、ファイルサイズは各ファイル一致していますね。しかし、それは偶然の一致です。ファイルの内容は一致しているかわかりませんね。サイズの小さいテキストファイルなら、PCを見比べてってことも手間に思わないかもしれません。しかしサイズの大きいファイルやバイナリファイルは、目視確認はお手上げです。対PCをマウントして、diff等した方が早いような気もしてきます。
そんな時に、ハッシュが役に立ちます。今回はMD5を使います。
md5sumコマンドで、各ファイルのハッシュ値を確認してみましょう。
file1.txtのハッシュ値は、PC1側が00846〜で、PC2側が67fb5〜となっています。値が一致していませんので、PC1とPC2のfile1.txtは一致していません。
file2.txtに関しても、PC1側が01a16〜で、PC2側が9dbda〜ですので、PC1とPC2のfile2.txtは不一致ということになります。しかし、PC1側のfile2.txtとfile3.txtのハッシュ値は一致しています。これはfile2.txtとfile3.txtの内容が一致していることを意味します。同様にPC2側のfile2.txtとfile3.txtも一致しています。
md5sumコマンドは、文字列またはファイルを指定できます。
HELLOという文字列のMD5ハッシュ値を求めてみましょう。
~$ md5sum <<<HELLO 0084467710d2fc9d8a306e14efbe6d0f -
HELLOではなく、HELLP(Oの文字コードに1を足した文字コード)のハッシュ値はどうなるでしょうか。
~$ md5sum <<<HELLP 13b8176db50c0c181b645bf450225c71 -
HELLPはHELLOのたった一文字違いなのですが、それぞれのハッシュ値は一文字も一致しません。
これまではファイルの内容を見ずに、一致確認をしました。画像等ではどうでしょうか。画像はサムネイルで画像の内容が見えてしまいますので、似たような画像を視認で一致していると思いがちです。しかし、以下の2つの画像のようにMD5ハッシュ値は異なっているので、画像も異なっています。
md5-pict1.png f50361782e1dc64ffc2ffc0588398262 | md5-pict2.png 564f1b48f3852f9165696a32fe4b25e7 |
「麻衣子」と「ジュリ」は、完全に不一致ですが、仲良しであるということは、二人の中に一致する何かがあるのでしょう。
コメント