IT技術を詳しく解説し、IT業界の本音を探る。

強引な人や神も(笑)。偽ファイルの正解率。

»

サーチマン佐藤です。
こんにちは。

前回の記事で、
「かに道楽の偽画像ど~れだ?」
というクイズ、出しましたね。

この回答結果、いきますね。

━━━━━━━━━━━━━━━━━
【質問】
改ざんした画像ファイルは、どれ?
(詳しくは、前回記事見てね)
━━━━━━━━━━━━━━━━━
【回答結果】

・かに道楽1
151票(17.6%)

・かに道楽2
331票(38.6%)

・かに道楽3
28票(3.3%)

・かに道楽4
42票(4.9%)

・やればわかるけど時間ない
98票(11.4%)

・さっぱりわからない
160票(18.7%)

・問題の意味がわからない
27票(3.2%)

・そのほか
20票(2.3%)
━━━━━━━━━━━━━━━━━

早速ですが、正解を言いますと、
「かに道楽2」になります。

正解の方、おめでとうございます。

それにしても、今回のクイズ、
多くの方がトライし(感謝)、
そして正解を導いてくれました。

いくつかの方法、紹介しましょう。

【読者から】
====================
なかなか面白いお題ですね。
力業ですが、メモ帳で開いて
中身を確認しました(笑)

力業ではない方法、
ありますよね~

メルマガでの回答、
楽しみにしてます!
====================

えっ、メモ帳で開いた!?
強引すぎるでしょ(笑)

いやいや、でも、
お疲れさまでした。

正解者のうち1割くらいかな、
・・・めっちゃ強引な方が。

もう少しスマートな方法は、
後述するとして、次いきましょう。

【読者から】
====================
プロパティ見ると、
若干サイズが違うんですよね~
====================

確かにですね。

キロバイトで見ると同じですが、
バイトレベルで見ると、
若干違うんですよね。

こんな感じで、
サイズからのアプローチは、
2割くらいだったでしょうか。

でもね、今回のクイズは、
これでOKですが、

サイズが同じでも、
中身が全然違うファイル、
いくらでもありますよね。

その時、どうするのか?

それは後述しますが、
その前に、ある意味、
神レベルの読者が(笑)。

思わず、大笑いでした。

【読者から】
====================
画像よく見ると、
かに道楽2だけ、少し白い。
====================

ほんまかいな!?(笑)

確かに、少しだけ、
一部に白で加工したのですが、
目で見て、わかりますか?

神、神ですよ。

驚きましたが(笑)、
ありがとうございました。

では、最後に、
スマートで王道的な方法。

【読者から】
====================
ハッシュ値で比較しました。
====================

はい、まさに。

そう、ハッシュ値です。

知らない人も多いので、
一応、簡単に解説すると、

全てのファイルの中身は、
(1文字でも、1Gでも)
ファイルサイズに関わらず、

ハッシュ関数にかけると、
固定長の文字列になる。

えっ?!

って気分でしょうが、
続けて聞いてください。

で、重要なのは、
中身が少しでも違えば、
固定長の文字列の中身も、
全く違ったものになる。

この特徴です。

たぶん、初めて聞くと、
こんな疑問がわく。

ファイルの中身なんて、
無限にあるのに、

それらは全て、
固定長の文字列で
ユニーク表現できるのか?

衝突しないのか?と。

はい、疑問はごもっともですが、
衝突ないし、ユニークなのです。

まあ、本当に衝突なしってのは、
別途で議論もあるのですが、
我々レベルで扱うなら、
衝突ゼロでいいのです。

なので、結論だけ言えば、
中身が少しでも違えば、
ハッシュ値は違ってくる。

この特性で調べるのです。

・・しっくりこない方、
具体的にいきましょうね。

どんなファイルでもいいですが、
例えば、前回のクイズなら、
ファイル(kani1.jpg)に対して、

Windowsの場合は、
コマンドプロンプトで、
> certutil -hashfile kani1.jpg
という感じで使います。

Macの場合は、ターミナルで、
$shasum kani1.jpg という感じ。

たぶん、こんな値がでる。
dc4126182fb677db9b
793cca14355fc854471e4c

これを、1~4.で調べると、
違いがわかりますね。

まあ、ハッシュ関数は、
色んなロジックがあるので、
上記は一つの例ですが、

同じロジックで調べれば、
kani2.jpgだけ違うのがわかります。

簡単にできるし、ハッシュは、
セキュリティやビットコイン、
色々使われている基本技術なので、
是非、一度は試してみましょうね。

ではでは、
またお会いしましょう。

ありがとうございました。

Comment(0)

コメント

コメントを投稿する