• 締切済み

ハッシュを使った画像管理

Evreuxの回答

  • Evreux
  • ベストアンサー率29% (225/774)
回答No.1

できます。とは言ってもあなたが具体的に何をしたいのかよくわかりませんが。 どんなデータであろうと内容に着目せずただのバイナリ列だと考えれば、ハッシュ関数は使えます。あとはハッシュ関数でハッシュ値を計算し、ハッシュ値に対応したアドレスに画像データを保存するプログラムを作れば良いだけです。

EFinter
質問者

補足

画像にごとにハッシュ値を計算し、効率のいい保存をしたいのですが・・・。例えばフォルダ分けをする際に画像のハッシュ値の一部が同じ画像だけをまとめるなどです。

関連するQ&A

  • ハッシュ値について

    ハッシュ値をHDDやメディアのファイル破損調査に使用しようかなと思っているのですが、いかがでしょうか? 例えばファイルの保管前にハッシュ値を取得し、その1年後ぐらいに改めてハッシュ値を取得、それを前回のハッシュ値と較べて、一緒であればファイルは破損していません、という考え方でいいのでしょうか? 何らかの理由でHDD・メディア上でファイルが破損し、しかし同じハッシュ値が検出されるということは有り得ないですよね? すいません、どなたかご返事お待ちしております。

  • ハッシュ法でのデータ管理について教えてください

    ハッシュ法でのデータ管理をするプログラムを作りたいんですが長いことPASCALに触ってなかったせいか全く分かりません。 どなたか教えていただけないでしょうか??問題の概要は以下のようなものです。 表に登録するデータについては、キーは英数字からなる長さ8までの文字列でデータ本体は整数(型名はintegerでよい)です。 ハッシュ表のサイズは11とします。 ハッシュ関数は文字列xの各文字のASCIIコードの総和を11で割った余りとします。 さらにメニュー表示として入力した文字により行う操作を決定します。 どの文字がどのような操作を行うのかは以下のとおりです。 's' の場合: ハッシュ表に登録されている全レコードを,ハッシュ関数値毎に(キーの値とデータの両方を)すべて表示します. 'r' の場合: さらに「キーの値」と「データ」を入力し,すでに同じキーをもつデータがあれば「二重登録」として検出し,そうでなければ,そのレコードをハッシュ表に登録します. 'e' の場合: さらに「キーの値」を入力し,そのキーをもつデータがハッシュ表に登録されているならば, そのデータを表示します.さらに削除するかどうかを入力させて,削除する選択をした場合にはそのレ コードを削除します.そのキーをもつデータがハッシュ表にない場合には「そのキーをもつレコードが ないこと」を出力しますが,ハッシュ表には操作を加えません. 'i' の場合: ハッシュ表に登録されている全レコードを,キーの値が小さい順に表示します.ここで「キー の値の順」とは,文字列の辞書順のことを意味します.Pascal では,文字列a,b に対して,a がb より 辞書的順序が先(小さい) ときには「a<b」で表現できます. 'd' の場合: 「'i' の場合」の逆で,キーの値が大きい順に表示します. 'q' の場合: プログラムを終了します.具体的には,実行文部の最後の「end.」の直前までジャンプし ます. 長くなってすいません。ちょっとしたヒントでもいいので教えていただければ幸いです。

  • ハッシュの使い方

    ハッシュ(MD5、SHA1)って何に使うんですか? また、ハッシュが分かればファイルをダウンロードできるんですか?

  • ハッシュのハッシュのソート

    rubyでハッシュのソート方法についてはいくつか情報のサイトを見つけられました。 ですが今やりたいのは、ハッシュのハッシュのソートなのですが、うまいやり方がわかりませんでした。 具体的には、 h1 = {"user1"=>{"a"=>10, "b"=>20, "c"=>30"}, "user2"=>{"d"=>5, "e"=>8}, "user3"=>{"f"=>10, "g"=>5, "h"=>10} } というようなハッシュのハッシュを想定しています。ユーザごとに案件ごとの必要工数(時間)をハッシュとして持たせ、全工数が多いユーザ順にソートしたいのです。 上記の場合だと、 {"user1"=>{"a"=>10, "b"=>20, "c"=>30"}, "user3"=>{"f"=>10, "g"=>5, "h"=>10}, "user2"=>{"d"=>5, "e"=>8} } というようにソートしたいのですが、何かやり方がありましたらご教授いただけますでしょうか。

    • ベストアンサー
    • Ruby
  • ハッシュ関数について質問です。

    プログラミング・数学? 初心者です。 IDやパスワード管理によく出てくる一次方向(ハッシュ)関数ですが、 よくパスワードとSALTを一緒にしてハッシュ関数を通してハッシュ値を取得しますよね。 そしてその結果(データベースなどに記録済み)とログイン時に入力した値とを照らし合わせるわけですが、 昔まだ若いころ、これとは別のタイプのハッシュ関数を使用したことがあります。 それはある(パスワードなどの)値をハッシュ関数で処理すると「いろんなハッシュ値」が生成され、 そのハッシュ値から当然パスワードは予測できないのですが、 しかしその複数のハッシュ値は全て、そのパスワードから生成されたハッシュ値だということは分かる、という関数を使用したことがあります。 その時はperlのcpanモジュール(名前を覚えていません。すいません。)を使ったのですが、この別のタイプのハッシュ関数はどういう仕組みで作られているのでしょうか? SALTが複数あり、そのそれぞれについて照合している?だけでしょうか? それとも私が無知で、そんな関数がそもそも存在するだけでしょうか? わかりません。教えてください。

  • ハッシュのハッシュを実現したい。

    ハッシュのハッシュを行いたいですがうまくいきません。 ◆正しい例 %ultraman = ( TARO => { cpu => "Celeron(266MHz)", memory=> "32MB", hdd => "4.3GB", }, JACK => { cpu => "Pentium2(333Mhz*2)", memory=> "128MB", hdd => "9GB*4", }, ); $name = "JACK"; $item = "cpu"; print "\$ultraman{$name}{$item}=[$ultraman{$name}{$item}]"; exit(0); __END__ ◆このように使えたら便利(要はハッシュの代入でハッシュのハッシュを実現したい) %a=(); %b = ("cpu"=>"aaaa", "memory"=>"bbbb"); $a{'JACK'} = %b; #---> このように代入したい $name = "JACK"; $item = "cpu"; print "\$a{$name}{$item}=[$a{$name}{$item}]"; exit(0); __END__

    • ベストアンサー
    • Perl
  • ハッシュ値について

    現代暗号入門という本を読んで「ハッシュ値」について解説がありました。 初めて聞く言葉だなと思い、読んでゆくとこれはあれに似ているなと思いました 「あれ」とは CRCという仕組みです ずいぶん前の話ですが、シリアル伝送路にはその途中でのデータ改ざんの恐れがあり、その検出のためにこんな方法があるのだということだったと思います ダイアルアップで接続していたころです この考え方はハッシュ値と同じではないかと思うのです となると、CRCとハッシュ値との間にはどんなかかわりがあるのだろうと思ったわけです どなたかこの疑問に答えてくださいませんか

  • ハッシュのハッシュでデータベース

    ハッシュのハッシュになっているデータをファイルに書き出しておき、必要なときにまたプログラムから使いたいと思っています。検索スピードを問題にするほどの量ではありませんし、チェックのために時々は自分で読みたいので、どちらかといえばテキストデータのほうが便利かなあと考えていますが、特に決めてはおりません。 何か便利な方法がありましたら、教えて頂けないでしょうか。

  • ハッシュ関数について

    例えば32ビットのデータなら32ビットのハッシュ値を、64ビットのデータなら64ビットのハッシュ値を作り出してくれるハッシュ関数はないでしょうか?できればそのようなハッシュ関数があったとして、Cのソースを公開しているようなホームページがありましたら教えてください。よろしくお願いします。

  • ファイルのハッシュ値を表示するソフト

    文書ファイル、画像ファイルなどのハッシュ値を表示してくれるソフトってありますでしょうか。 MD5とかSHA-1とかいろんなハッシュ関数に対応しているとうれしいのですが、 おすすめのフリーソフトがありましたら教えて下さい。