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


13
Javaでパスワードをハッシュするにはどうすればよいですか?
データベースに保存するためにパスワードをハッシュする必要があります。Javaでこれを行うにはどうすればよいですか? 私はプレーンテキストのパスワードを取り、ランダムなソルトを追加し、ソルトとハッシュされたパスワードをデータベースに保存したいと思っていました。 次に、ユーザーがログインするときに、送信したパスワードを取得し、ランダムなソルトをアカウント情報から追加し、ハッシュして、保存されているハッシュパスワードとアカウント情報が等しいかどうかを確認します。

9
どの暗号ハッシュ関数を選択すればよいですか?
.NETフレームワークには、6つの異なるハッシュアルゴリズムが付属しています。 MD5:16バイト(ハッシュにかかる時間500MB:1462ミリ秒) SHA-1:20バイト(1644ミリ秒) SHA256:32バイト(5618ミリ秒) SHA3​​84:48バイト(3839ミリ秒) SHA512:64バイト(3820ミリ秒) RIPEMD:20バイト(7066 ms) これらの機能はそれぞれ異なる方法で実行されます。MD5が最も速く、RIPEMDが最も遅い。 MD5には、組み込みのGuidタイプに適合するという利点があります。そして、それはタイプ3 UUIDの基礎です。SHA-1ハッシュはタイプ5 UUIDの基礎です。これにより、識別に非常に使いやすくなります。 ただし、MD5は衝突攻撃に対して脆弱です。SHA-1も脆弱ですが、程度は低くなります。 どのハッシュアルゴリズムをどの条件で使用すればよいですか? 私が答えを見て本当に興味がある特定の質問は次のとおりです。 MD5は信頼されないのですか?悪意のない意図でMD5アルゴリズムを使用し、第三者が悪意のある意図を持たない通常の状況では、すべての衝突が予想されます(2つの任意のバイト[]が同じハッシュを生成することを意味します) RIPEMDはSHA1よりどのくらい優れていますか?(より良い場合)計算が5倍遅くなりますが、ハッシュサイズはSHA1と同じです。 ファイル名(または他の短い文字列)をハッシュするときに、悪意のない衝突が発生する確率はどれくらいですか?(例:同じMD5ハッシュを持つ2つのランダムなファイル名)(MD5 / SHA1 / SHA2xxを使用)一般に、悪意のない衝突の確率はどれくらいですか? これは私が使用したベンチマークです: static void TimeAction(string description, int iterations, Action func) { var watch = new Stopwatch(); watch.Start(); for (int i = 0; i < iterations; i++) { func(); } …


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

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