タグ付けされた質問 「hash」

ハッシュ関数は、大量のデータを小さなデータ(通常は単一の整数)に変換する明確に定義された手順または数学関数です。ソーシャルメディアのコンテンツにラベルを付けるために使用されるハッシュタグに関する質問については、ハッシュタグを使用してください。URLとHTMLアンカーに関する質問については、フラグメント識別子を使用してください。Rubyのハッシュタイプに関する質問については、ruby-hashを使用してください。

7
一般に信頼できると考えられるSHA-256 JavaScript実装はありますか?
私はフォーラムのログインを書いており、それをサーバーに送信する前にJavaScriptでクライアント側のパスワードをハッシュする必要があります。私が実際に信頼できるSHA-256実装を理解するのに苦労しています。誰もが使用するある種の権威あるスクリプトが存在することを期待していましたが、すべて独自の実装でさまざまなプロジェクトの負荷を見つけています。 他人の暗号を使用することは、自分でレビューする資格がない限り、常に信念の飛躍であり、「信頼できる」という普遍的な定義はないことを理解していますが、これは一般的で重要なようであり、何らかの種類があるはずです何を使うかについてのコンセンサス。私は単純なのですか? コメントでたくさん出てくるので編集してください:はい、サーバー側でもう一度より厳しいハッシュを行います。クライアント側のハッシュは、データベースに保存する最終結果ではありません。クライアント側のハッシュは、人間のクライアントが要求するためです。彼らは理由を具体的に述べていませんが、おそらく彼らはやり過ぎを好みます。
95 hash  javascript  sha256  sha2 

15
Linux:特定のフォルダーとコンテンツの単一のハッシュを計算しますか?
きっとこれを簡単に行う方法があるはずです! 私は、Linuxのコマンドラインなどを試したアプリsha1sumとmd5sum、彼らは唯一の個々のファイルや出力ハッシュ値のリスト、各ファイルに1つのハッシュを計算することができるように思われます。 (ファイル名だけでなく)フォルダーのコンテンツ全体に対して単一のハッシュを生成する必要があります。 次のようなことをしたい sha1sum /folder/of/stuff > singlehashvalue 編集:明確にするために、私のファイルはディレクトリツリーの複数のレベルにあり、すべてが同じルートフォルダーにあるわけではありません。
95 linux  bash  hash 

8
MD5は128ビットですが、なぜ32文字なのですか?
md5に関するドキュメントをいくつか読んだところ、128ビットと書かれていましたが、なぜ32文字なのですか?文字を計算できません。 1バイトは8ビットです 1文字が1バイトの場合 それなら128ビットは128/8 = 16バイトですよね? 編集: SHA-1は160ビットを生成しますが、文字数はいくつですか?

2
boost :: hash_combineのマジックナンバー
boost::hash_combineテンプレート関数は、ハッシュ(と呼ばれる参照取りseed)及びオブジェクトv。docsによると、それseedはvby のハッシュと結合します seed ^= hash_value(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2); これは決定論的であることがわかります。XORが使用される理由がわかります。 追加は、類似した値を広く分離してマッピングするのに役立つので、ハッシュテーブルをプローブしても問題が発生しないと思いますが、誰かが魔法の定数を説明できますか?

3
オープンハッシングとクローズドハッシングの意味
オープンハッシュ(個別チェーン): オープンハッシュでは、ハッシュテーブルのセルに添付されたリンクリストにキーが格納されます。 クローズドハッシュ(オープンアドレス指定): クローズドハッシュでは、リンクリストを使用せずに、すべてのキーがハッシュテーブル自体に格納されます。 なぜオープン、クローズ、セパレートと呼ばれているのか理解できません。誰かがそれを説明できますか?
93 hash 

4
Python辞書に相当するJava
私は長い間Pythonを使用しており、辞書の使い方がとても好きです。彼らは非常に直感的で使いやすいです。Pythonの辞書に相当する適切なJavaはありますか?ハッシュマップとハッシュテーブルを使っている人のことを聞いたことがあります。誰かがハッシュテーブルとハッシュマップを使用することとPythonの辞書を使用することの類似点と相違点を説明できますか?
93 java  python  hash  dictionary 


11
2つの異なる文字列が同じMD5ハッシュコードを生成できますか?
バイナリアセットごとに、MD5ハッシュを生成します。これは、特定のバイナリアセットがすでにアプリケーションに存在するかどうかを確認するために使用されます。しかし、2つの異なるバイナリアセットが同じMD5ハッシュを生成する可能性があります。では、2つの異なる文字列が同じMD5ハッシュを生成する可能性はありますか?

3
ふぐで長いパスワード(> 72文字)をハッシュする方法
先週私はパスワードハッシュに関する記事をたくさん読みましたが、Blowfishは現時点で最高のハッシュアルゴリズム(の1つ)のようですが、それはこの質問のトピックではありません。 72文字の制限 Blowfishは、入力されたパスワードの最初の72文字のみを考慮します。 <?php $password = "Wow. This is a super secret and super, super long password. Let's add some special ch4r4ct3rs a#d everything is fine :)"; $hash = password_hash($password, PASSWORD_BCRYPT); var_dump($password); $input = substr($password, 0, 72); var_dump($input); var_dump(password_verify($input, $hash)); ?> 出力は次のとおりです。 string(119) "Wow. This is a super secret and …

16
MD5ハッシュ値を元に戻せないのはなぜですか?
私がいつも疑問に思っている1つの概念は、暗号化ハッシュ関数と値の使用です。これらの関数は一意であり、事実上リバースすることは不可能であるハッシュ値を生成できることを理解していますが、これは私がいつも疑問に思っていたことです: 私のサーバー上にある場合、PHPで以下を生成します。 md5("stackoverflow.com") = "d0cc85b26f2ceb8714b978e07def4f6e" MD5関数を介して同じ文字列を実行すると、PHPインストールで同じ結果が得られます。ある開始値から、ある値を生成するためにプロセスが使用されています。 これは、何が起こっているのかを分解してハッシュ値を逆にする方法があることを意味しませんか? 結果の文字列をたどることが不可能になるこれらの関数については何ですか?

4
ハッシュの配列を単一のハッシュにマッピングするRails
私は次のようなハッシュの配列を持っています: [{"testPARAM1"=>"testVAL1"}, {"testPARAM2"=>"testVAL2"}] そして、私はこれを次のような単一のハッシュにマッピングしようとしています: {"testPARAM2"=>"testVAL2", "testPARAM1"=>"testVAL1"} 私はそれを使ってそれを達成しました par={} mitem["params"].each { |h| h.each {|k,v| par[k]=v} } しかし、これをより慣用的な方法で(できればローカル変数を使用せずに)実行できるかどうか疑問に思っていました。 これどうやってするの?

7
C#のハッシュ文字列
でハッシュ文字列を取得しようとすると問題が発生しc#ます。 私はすでにいくつかのウェブサイトを試しましたが、それらのほとんどはハッシュを取得するためにファイルを使用しています。文字列用の他のものは少し複雑すぎます。次のようなWeb用のWindows認証の例を見つけました。 FormsAuthentication.HashPasswordForStoringInConfigFile(tbxPassword.Text.Trim(), "md5") ファイル名を含む文字列をより安全にするために、ハッシュを使用する必要があります。どうやってやるの? 例: string file = "username"; string hash = ??????(username); 「md5」ではなく、別のハッシュアルゴリズムを使用する必要がありますか?
91 c#  string  hash 


5
Python dictが同じハッシュを持つ複数のキーを持つことができるのはなぜですか?
私は内部でPythonhash関数を理解しようとしています。すべてのインスタンスが同じハッシュ値を返すカスタムクラスを作成しました。 class C: def __hash__(self): return 42 上記のクラスのインスタンスは一度に1つしか存在できないと仮定しましたdictが、実際には、adictは同じハッシュを持つ複数の要素を持つことができます。 c, d = C(), C() x = {c: 'c', d: 'd'} print(x) # {<__main__.C object at 0x7f0824087b80>: 'c', <__main__.C object at 0x7f0823ae2d60>: 'd'} # note that the dict has 2 elements もう少し実験してみたところ__eq__、クラスのすべてのインスタンスが等しく比較されるようにメソッドをオーバーライドすると、dict1つのインスタンスしか許可されないことがわかりました。 class D: def __hash__(self): return 42 def __eq__(self, other): return …

9
パスワードハッシュのランダムでないソルト
更新:私は最近この質問から、以下の全体の議論で私(そして他の人もそうだったと確信しています)は少し混乱していることを学びました:私がレインボーテーブルと呼んでいるものは実際にはハッシュテーブルと呼ばれます。レインボーテーブルは、より複雑な生き物であり、実際にはヘルマンハッシュチェーンのバリアントです。解答は同じであると私は信じていますが(解読には至らないため)、一部の議論は少し歪んでいる可能性があります。 質問:「レインボーテーブルとは何ですか。どのように使用されますか?」 通常、Rainbow Tableの攻撃から保護するなど、ハッシュ関数(パスワードなど)と共に使用するために、暗号として強力なランダム値をソルトとして使用することを常にお勧めします。 しかし、実際にはソルトがランダムであることは暗号的に必要ですか?これに関して、一意の値(userIdなどのユーザーごとに一意)で十分でしょうか?実際には、単一のRainbow Tableを使用してシステムのすべて(またはほとんど)のパスワードをクラックする ことはできません... しかし、エントロピーの欠如は、ハッシュ関数の暗号強度を本当に弱めるのでしょうか? ソルトを使用する理由、それを保護する方法(保護する必要はない)、単一の定数ハッシュを使用する(しない)、または使用するハッシュ関数の種類については尋ねていません。 塩がエントロピーを必要とするかどうかだけです。 これまでの回答に感謝しますが、私が(少し)あまり慣れていない領域に焦点を当てたいと思います。主に暗号解読への影響-誰かが暗号数学PoVから何らかの入力を持っている場合、私は最も感謝します。 また、考慮されていなかった追加のベクトルがある場合、それも素晴らしい入力です(複数のシステムでの@Dave Sherohmanポイントを参照)。 それ以上に、理論、アイデア、またはベストプラクティスがある場合は、証明、攻撃シナリオ、または経験的証拠のいずれかでこれをバックアップしてください。または、許容できるトレードオフについての有効な考慮事項...私はこのテーマのベストプラクティス(大文字のBの大文字P)に精通しています。これが実際に提供する価値を証明したいと思います。 編集:ここでいくつかの本当に良い答えがありますが、@ Daveが言うように、それは一般的なユーザー名のレインボーテーブルに帰着します...そしてあまり一般的ではない名前も考えられます。ただし、ユーザー名がグローバルに一意である場合はどうなりますか?必ずしも私のシステムで一意である必要はありませんが、ユーザーごとに-たとえば、電子メールアドレス。 (@Daveが強調しているように、saltは秘密にされていないため)シングルユーザー用のRTを作成するインセンティブはなく、これはクラスタリングを妨げます。唯一の問題は、別のサイトで同じメールアドレスとパスワードを使用している可能性があることです。 それで、それは暗号解読に帰着します-エントロピーは必要ですか、それとも不要ですか?(私の現在の考えでは、暗号解読の観点からは必要ではありませんが、他の実際的な理由からです。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.