akkun_choi pedia
mindiaakkun_choi pedia見出し語

ハッシュ

akkun_choi · 2009-02-16 更新 · 1 ポイント

あらゆる実体につけられる番号、またはそれを求める方法のこと。実体が異なるならこの番号は絶対に被らないようにしなければならない。

例えば話を「人間」に限るなら、

人が変われば番号も変わる。

もうちょっと限定して「ある日の人間」にするなら

人と日時が変われば番号も変わる。

要するに入力する情報とそれに対する番号なわけです。

もうちょっとプログラミングの話に持っていく。ハッシュ関数の代名詞md5で色んな値を求めてみる。

ちなみにmd5のようなものをハッシュ関数、求めた値をハッシュ値という。だいたいこのようにハッシュ値は実に覚えにくい値になる。

「IDとどう違うんだ」と思うかもしれない。実際のところハッシュで「Identity」が得られるわけだからのIDの一種だといってもいいと思う。実際、blogURLやgitのバージョンにも使われてる。コードとか連番IDとかは人が読みやすいようにつけられてるってだけだろうね。

入力された値が同じであれば絶対ハッシュ値が同じになる。ということは、これを使ってある物とある物が変わったかどうか、または同じ物かどうかを調べることができる。その物を直接比較することをせずに!!

ちなみにmd5はコリジョン(違う値を入力したのに、同じハッシュ値がでる)が見つかって現在ではあんまり使わない方がいいらしい。

あと、連想配列のことをハッシュって言ったりする。これは連想配列が上記ハッシュの手法を使って構築されてるからです。