- 締切済み
ハッシュの考え方、使用例を分かり易く教えてください。
基本情報処理の勉強をしていますが、ハッシュの考え方がいまいちわかりません。分かり易く教えていただけると幸いなのですが、どなたかご教授いただけませんでしょうか。どうぞよろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
関連するQ&A
- ハッシュのハッシュのソート
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
- 投票データをハッシュを使用して入出力する
こんにちは。tyabudaiと申します。 アンケート(投票)のCGIを 作成しようと思っています。 ログの中身は、(とりあえずカンマ区切りで) 「項目,数値」です。 処理のイメージとしては、 まずログファイルの内容を、 「項目」をキーとしたハッシュに取り込みます。 投票があった場合、 「項目」をキーとして「数値」を取り出し、 1つ増加させる処理をしたいです。 現在、他サイト様よりCGIをダウンロードして そのような処理がないか探していますが、 全く手がかりがありません。 まずは、ログファイルの内容をハッシュに取り込む方法を お教えいただけないでしょうか。 ご存知の方のお力添えいただければ幸いです。
- ベストアンサー
- Perl
- ハッシュ関数
ハッシュ関数について悩んでいます. ハッシュ関数の例として以下Wikiの引用です http://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5%E9%96%A2%E6%95%B0 unsigned int hash(char *s) { unsigned int h = 0; for (;*s != '\0'; s++) { h = h * 137 + *s; } return h % 1987; } このハッシュ関数において, 「hの更新計算で用いる137という数は、2(7乗)+2(3乗)+2(0乗) というものであり、乗法した後にも2進数表現の下位の桁にも 情報が残るようになっている。そのため前の方の文字の情報が 桁あふれによって失われることはない。」 と記述されているのですが,私が考えてしまうのは以下の通りです. 「最終的にハッシュ値は合計を1987で割った余りになるのだから, 下位の桁(1~1987)に情報を残さなければならない. それぞれのsの上位から下位までの情報を合計の数値の下位に 残すのであれば,137は掛けるのではなく割るべき.」 もちろん私の考え方が間違っているのはわかりますが, なぜ137を掛けるのかを理解できません. どなたかわかりやすくご教授いただけたら幸いです.
- ベストアンサー
- C・C++・C#
- ハッシュ探索とはどういうイメージなのか?
ハッシュ探索というのは「対象となるデータから一定の手順で算出したハッシュ値を用いてデータ本体の代わりに比較に用いる方式」ということですが、どういうものなのかイメージが思いつきません。 これはつまり、データ本体を「ハッシュ」という文字列に変換して、ハッシュ値として出力したものを、比較する(全ての文字列において比較する)というイメージでよいのでしょうか? もしそうだとしたら、ハッシュ値の長さ(文字列の長さ)に応じて(比較)処理時間が変わってくるのでしょうか? 例えば、(あくまで例です。) 6文字程度のハッシュ値→0.2秒で(比較処理時間が)終わる 3万文字程度のハッシュ値→3秒ぐらい(比較処理時間が)かかる ↑こういう風にハッシュ探索は文字列の長さに応じて処理時間が変化するのでしょうか? 回答のほうお願いします。
- ベストアンサー
- その他([技術者向] コンピューター)
- ハッシュ(メッセージダイジェスト)について
よろしくお願いいたします。 現在セキュリティの勉強をしております。 で、ハッシュについて確認したく投稿いたしました。 自分なりに勉強をして、 送信者がデータをハッシュ関数を使用してメッセージダイジェストを 作成し、受けても同じ事を行うのはわかりました。 つまり、 [データ]+[メッセージダイジェスト(データに添付する)]+[デジタル署名(データに添付する)] の3点をまとめて暗号化し、 受け取った相手が秘密鍵で [データ]+[メッセージダイジェスト]+[デジタル署名]に複合し 自分でもハッシュ関数を使用してメッセージダイジェストを作成し 送り手のダイジェストと比較すると理解しましたが 正しいのでしょうか? また、同じハッシュ関数で自分でも作成するみたいですが どこにハッシュ関数の情報が載っているのですか? いまいち自信が持てませんのでアドバイスお願いいたします。
- ベストアンサー
- ネットワーク
- ハッシュとツリー構造
今学校でハッシュとツリー構造について勉強しています。 しかし、先生の言っていることがまったく意味が分かりません。 すいませんが、ハッシュとツリー構造について簡単でいいので教えてください。 お願いします。
- ベストアンサー
- C・C++・C#
- ハッシュテーブルの使い方
こんにちわ。 いまVB.Net2003でプログラミングをしている者です。 ORACLEのあるテーブルの内容をハッシュテーブルに取り込んで, キー検索する処理をしたいのですが, 取り込む際,ハッシュテーブルの「Add」メソッドで 1件ずつ取り込むしかないのでしょうか? たとえばコンボボックスの「DataSource」プロパティに レコードセットを設定するように,一回で設定したいのですが, このような機能があるでしょうか? またハッシュテーブルはキーは1つしか設定できないようですが, このテーブルデータを2つのキーで検索するのはどうすれば 良いでしょうか?
- ベストアンサー
- Visual Basic
- phpのパスワードのハッシュ化について
phpで会員サイトの作成を学習しています。 PDOを使用してMysqlサーバーに接続しています。 開発環境はxamppでphp Version 5.5.15を使用しています。 入力フォームにユーザーの情報を入力してもらい、 データベースに格納する際、 基本的なセキュリティ要件として パスワードをハッシュ化する必要があるということを こちらのサイトで(http://php.net/manual/ja/faq.passwords.php) 知りました。 ハッシュ化については初耳で、いまいちハッシュアルゴリズムの種類による違い等はまだ理解しきれていないのですが、 PHP5.5.15を使用しているので、パスワードのハッシュアルゴリズムは 上記サイトに載っているようにpassword_hashを使用するのが今のところ最善なのでしょうか? また、ハッシュ化されたパスワードの認証についてですが、 ログイン画面でパスワードを認証する際、 ユーザーが入力したパスワードをハッシュ化して 該当レコードのハッシュ化されて保存されたパスワードと 同じであれば認証が成功するという認識で正しいでしょうか? ご回答、よろしくお願いします。
- ベストアンサー
- PHP
- ハッシュ関数について質問です。
プログラミング・数学? 初心者です。 IDやパスワード管理によく出てくる一次方向(ハッシュ)関数ですが、 よくパスワードとSALTを一緒にしてハッシュ関数を通してハッシュ値を取得しますよね。 そしてその結果(データベースなどに記録済み)とログイン時に入力した値とを照らし合わせるわけですが、 昔まだ若いころ、これとは別のタイプのハッシュ関数を使用したことがあります。 それはある(パスワードなどの)値をハッシュ関数で処理すると「いろんなハッシュ値」が生成され、 そのハッシュ値から当然パスワードは予測できないのですが、 しかしその複数のハッシュ値は全て、そのパスワードから生成されたハッシュ値だということは分かる、という関数を使用したことがあります。 その時はperlのcpanモジュール(名前を覚えていません。すいません。)を使ったのですが、この別のタイプのハッシュ関数はどういう仕組みで作られているのでしょうか? SALTが複数あり、そのそれぞれについて照合している?だけでしょうか? それとも私が無知で、そんな関数がそもそも存在するだけでしょうか? わかりません。教えてください。
- ベストアンサー
- その他(プログラミング・開発)
- ELECOM PKB-DE10のキーボードが切れてきたため、新しいものに変えたいと考えています。しかし、購入方法がわからないので教えてください。
- ELECOM PKB-DE10を使用していますが、キーボードが故障してきています。新しいキーボードを購入したいのですが、どのように購入すれば良いでしょうか?
- ELECOM PKB-DE10のキーボードを使っていて、最近調子が悪くなってきました。新しいキーボードを購入したいのですが、どこで購入できるのか教えてください。