問題タブ [md5]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - c#と同じ結果が得られるphp md5アルゴリズム
私はC#でハッシュアルゴリズムを持っています。一言で言えば、それは次のとおりです。
次に、この動作を php で複製する必要があります。
どうすれば達成できますか?
私がチェックしました
- md5
- utf8_decode
- utf8_encode
- base64_encode
- base64_decode
- url_decode
しかし、php md5が最後に==を取得しないことに気付きました...何が欠けていますか?
注: C# の動作は既に実装されており、パスワードはこのアルゴリズムでデータベースに保存されているため、変更できません。
hash - MD5 に対するプリイメージ攻撃が差し迫っていることを示す調査結果は公開されていますか?
私は、MD5が壊れていて、壊れていて、時代遅れで、決して使われないというSOを読み続けています。それは私を怒らせます。
実際のところ、MD5に対する衝突攻撃はかなり簡単になっています。一部の人々は芸術に至る衝突攻撃を持っており、私たちでさえそれらを使用して選挙を予測することができます.
MD5 の「壊れやすさ」の例のほとんどはあまり面白くありません。有名な CA 証明書のハッキングでさえ、当事者が GOOD 証明書と EVIL 証明書を同時に生成したことを証明できる衝突攻撃でした。これは、EVIL CA が外部に出回った場合、信頼されていた良い CA を持っていた人から漏洩したことが証明できることを意味します。
さらに懸念されるのは、プリイメージまたはセカンド プリイメージ アタックです。
MD5 に対するプリイメージ攻撃の可能性はどれくらいですか? それが差し迫っていることを示す現在の研究はありますか? MD5 が衝突攻撃に対して脆弱であるという事実は、プリイメージ攻撃を受ける可能性を高めていますか?
c# - C#MD5ハッシャーの例
編集:コードが期待どおりに機能するため、これを例に変更しました。
ファイルをコピーし、MD5ハッシュを取得してから、コピーを削除しようとしています。これは、別のアプリが書き込む元のファイルのプロセスロックを回避するために行っています。ただし、コピーしたファイルがロックされています。
次に、「プロセスがファイルにアクセスできません」という例外が発生しますFile.Delete()
。
このusing
ステートメントを使用すると、ファイルストリームが適切に閉じられると思います。また、ファイルストリームを個別に宣言し、削除し、using
読み取り後に配置してみました。fs.Close()
fs.Dispose()
この後、実際にmd5の計算をコメントアウトすると、ファイルが削除されてコードが実行されるため、と関係があるように見えますComputeHash(fs)
。
c++ - ファイル名が与えられた場合、Crypto++ を使用して Adler32 を取得するにはどうすればよいですか?
「文字列ファイル名」が与えられた場合、C++ Crypto++ ライブラリを使用して Adler32 チェックサムを取得するにはどうすればよいですか。Source and Sink システムの使用について少し混乱しています。
以下に、MD5 を実行するコードのスケルトンを示しますが、Adler32 の使用法に関する例やチュートリアルが見つからないようです。
ここの良いサンプルとサンプル コードhttp://www.cryptopp.com/wiki/Category:Crypto++のサンプル (必要な Adler32 のものを除く)
iphone - Iphoneのグラバター?16 進数の MD5 ハッシュを生成するにはどうすればよいですか?
iPhone アプリケーションでgravatarを使用したいと考えています。Objective-C for iPhone で 16 進数の MD5 ハッシュを生成する方法はありますか? iPhone で openssl を使用することはできません。
language-agnostic - md5 を使用して衝突の可能性を計算するにはどうすればよいですか?
1 から 256 文字の間で長さが変化するキーがあります*
。md5を使用しているときに任意の 2 つのキーが衝突する確率を計算するにはどうすればよいですか(各キーを試行するブルート フォース ソリューションをむき出しにします)。
*
文字セットはに制限されています[a-z.-]
language-agnostic - md5 ハッシュの最初の 32 ビットは、他の部分文字列と同じように「ランダム」ですか?
いくつかのデータ オブジェクトの 32 ビット ハッシュを作成しようとしています。私は独自のハッシュ関数を書く気がなく、md5 が利用可能であるため、現在のアプローチは md5 ハッシュの最初の 32 ビット (つまり最初の 16 進数の 8 桁) を使用することです。これは受け入れられますか?
つまり、md5 ハッシュの最初の 32 ビットは、他の部分文字列と同じように「ランダム」ですか? それとも、たとえば最後の 32 ビットを好む理由はありますか? それとも、4 つの 32 ビット部分文字列を XOR して一緒にするのでしょうか?
いくつかの先制的な説明:
- これらのハッシュは、暗号的に安全である必要はありません。
- 私は md5 のパフォーマンスには関心がありません。それは、私のニーズに対して十分に高速です。
- これらのハッシュは、衝突がほとんど起こらないように十分に「ランダム」である必要があります。
- このシステムでは、アイテムの数が 10,000 を超えないようにする必要があります (現実的には、おそらくその半分にはならないでしょう)。したがって、最悪の場合、衝突に遭遇する確率は約 1% になります (十分に「ランダムな」ハッシュが見つかったと仮定します)。
language-agnostic - ハッシュの衝突確率を評価するにはどうすればよいですか?
検索システムのバックエンド アプリケーションを開発しています。検索システムはファイルを一時ディレクトリにコピーし、ランダムな名前を付けます。次に、一時ファイルの名前をアプリケーションに渡します。私のアプリケーションは、限られた時間内に各ファイルを処理する必要があります。それ以外の場合はシャットダウンされます。これはウォッチドッグのようなセキュリティ対策です。ファイルの処理には時間がかかる可能性が高いため、このシナリオを処理できるアプリケーションを設計する必要があります。次に検索システムが同じファイルのインデックスを作成しようとしたときにアプリケーションがシャットダウンされた場合、別の一時的な名前が付けられる可能性があります。
明白な解決策は、検索システムとバックエンドの間に中間層を提供することです。バックエンドへのリクエストをキューに入れ、結果が到着するのを待ちます。リクエストが中間層でタイムアウトした場合 - 問題ありません。バックエンドは引き続き動作し、中間層のみが再起動され、後で検索システムによってリクエストが繰り返されたときにバックエンドから結果を取得できます。
問題は、ファイルを識別する方法です。それらの名前はランダムに変わります。MD5 のようなハッシュ関数を使用して、ファイルの内容をハッシュするつもりです。私は誕生日のパラドックスをよく知っており、リンクされた記事からの推定を使用して確率を計算しました。100,000 個以下のファイルがあると仮定すると、2 つのファイルが同じ MD5 (128 ビット) を持つ確率は約 1,47x10 -29です。
このような衝突確率を気にする必要がありますか、それともハッシュ値が等しいとファイルの内容が等しいと仮定する必要がありますか?
c# - ストリームでの C# MD5 ComputeHash のソルト
MD5.ComputeHash(Stream) をソルトする方法がわかりません。HashAlgorithm にバイトを挿入する方法がありませんか?
ストリーム計算を実行する前に ComputeHash(byte[]) を実行しようとしましたが、当然のことながら、効果はありませんでした。(ファイルの変更以外に) アイデアはありますか?
御時間ありがとうございます。
補遺 もう少し具体的に言うと、ストリームを使用して、メモリにロードしたくない大きなファイルのハッシュを取得したいと考えています。