問題タブ [message-digest]

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.

0 投票する
1 に答える
992 参照

java - javaと比較してcで異なるopensslダイジェスト

以下は、DigitalSigning Handler の一部であるコードです。

SOAP 呼び出しのロギングを有効にし、SHA-256 形式のダイジェストが計算されている文字列を抽出しました。同じ文字列を使用して、c でダイジェストを計算しました。以下は、それを計算する C++ のコードです。両方の値が異なります。

この点に関するヘルプは役に立ちます。ありがとう

0 投票する
2 に答える
7224 参照

java - MessageDigest.reset() を使用する場合

Java でのハッシュ生成に関する OWASP の推奨事項にやみくもに従ってきました (こちらを参照)。具体的には、 の目的と効果がよくわからないMessageDigest.reset()ため、いつ、どのように使用すればよいかわかりません。

  1. update()完全に署名する必要があるさまざまな値を使用してダイジェストを数回 ing することにより、salt とペイロードを「ロード」しています。reset()事前に消化する必要がありますか?それともその後?
  2. ダイジェストがreset()ループ内にあるのはなぜですか (例を参照)。

これが私のコードです:

私が観察しているのは、serialNumberが変わっても署名が同じままであることです。「reset()」呼び出しを省略した場合、sig は変更されます...

0 投票する
2 に答える
1121 参照

android - MD5 は、Android の MessageDigest で使用できることが保証されていますか?

MD5 ダイジェスト アルゴリズムがすべての Android デバイスで利用可能であることが保証されているかどうかを知りたいのですが、MessageDigest.getInstance("MD5")スローされる可能性があるチェック済み例外を率直に無視します。

0 投票する
2 に答える
7180 参照

java - MD5メッセージダイジェストJava

文字列リストからMD5メッセージダイジェストに2つの文字列を変換しようとしています。

私の文字列リストは「usernamepassword」と呼ばれます。

私の質問は-

A:それは正しいやり方ですか?B:別のクラスで個々のMD5ハッシュを使用できるようにするには、どうすればそれを返すことができますか?

0 投票する
1 に答える
3833 参照

java - MessageDigest.update(byte[]) は何をしますか?

これは正確に何をしますか?調べてみましたが、何も見つかりませんでした。

byte[]質問の理由は、ハッシュされる値にSALT を組み込みたいからです。したがって、次のようにする必要があります(疑似コード):

SALTこれは と の両方をvalue最終ダイジェストに追加しますか、それとも両方の変数を 1 つに結合してから 1update回結合する必要がありますか?

どのドキュメントにもこれに対する答えが見つかりませんでした。説明をいただければ幸いです。

ありがとう、乾杯。

0 投票する
0 に答える
745 参照

java - DigestInputStream -> コンシューマー部分がボトルネックの場合、スローダウンせずにハッシュを計算します

ファイルを S3 などのサービスに転送する必要があるアプリケーションがあります。

InputStreamその着信ファイル (必ずしも a である必要はありません)FileInputStreamがあり、これInputStreamを で表されるマルチパート リクエスト ボディOutputStreamに書き込みます。次に、ファイルのハッシュを最後に (これもリクエスト ボディを介して) 書き込む必要があります。

のおかげでDigestInputStream、ハッシュをライブで計算できるので、ファイル本体が に送信されたOutputStream後、ハッシュが利用可能になり、マルチパート リクエストに追加することもできます。

この関連する質問を確認できます: 最も安価なハッシュ アルゴリズムとは何ですか?

特に私自身のベンチマークの回答: https://stackoverflow.com/a/19160508/82609

したがって、私のコンピューターはMessageDigest、MD5 で 500MB/秒、SHA-512 で 200MB/秒近くのスループットでハッシュできるようです。

リクエスト本文を書き込む接続のスループットは 100MB/s です。より高いスループットで OutputStream に書き込むと、OutputStream がブロックされ始めます (これは、メモリ フットプリントを低く保ち、アプリケーションの一部にバイトを蓄積させたくないため、意図的に行われます)。


テストを行ったところ、アルゴリズムがアプリケーションのパフォーマンスに与える影響がはっきりとわかりました。

50MB (合計 1Gb) のファイルを 20 個アップロードしようとしました。

  • MD5 では、約 16 秒かかります
  • SHA-512 の場合、約 22 秒かかります

単一のアップロードを実行すると、同じ順序で速度が低下することもわかります。

したがって、最終的には、ハッシュの計算と接続への書き込みの並列化はありません。これらのステップは順番に実行されます。

  • ストリームからバイトを要求する
  • 要求されたバイトのハッシュ
  • バイトの送信

ハッシュのスループットは接続スループットよりも大きいため、その速度低下を回避する簡単な方法はありますか? 追加のスレッドが必要ですか?

前のチャンクが接続に書き込まれている間に、データの次のチャンクを事前に計算してハッシュできると思いますか?

これは時期尚早の最適化ではありません。大量のドキュメントをアップロードする必要があり、実行時間はビジネスにとって妥当です。