問題タブ [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 投票する
2 に答える
3134 参照

java - NoSuchAlgorithmException をキャッチせずに Java MD5 MessageDigest を使用するにはどうすればよいですか?

Java で MD5 合計を計算する場合は、考えられる例外に注意する必要があります。

ただし、JVM 仕様によれば、MD5 をサポートする必要があるため、例外がスローされることはありません。より洗練されたコードを記述できる別のアクセス パターンはありますか?

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

java - SHA-256 アルゴリズムを使用してデータベース内のパスワードを暗号化する

SHA-256 アルゴリズムを使用してデータベースでパスワードを暗号化したいのですが。いくつかの調査を行ったところ、MessageDigestクラスを使用して文字列オブジェクトを適切に暗号化する必要があることがわかりました。問題は、ハッシュ関数を元に戻して元のパスワードに戻す方法です。つまり、ログイン システムを作成する場合、元のパスワードに戻すことができなければならないのでしょうか? パスワードをフォームに入力するときに、ハッシュ関数に変換して、データベースに保存されているハッシュ文字列と比較する必要があるのではないでしょうか?

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

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

MessageDigest以前のクラスは知りませんでした。現在、コードの一部を理解しようとしていますが、ドキュメントはあまり役に立ちません。

Javaのドキュメントによると:

"update"MessageDigest指定されたを使用してこれを更新しますbyte[]

"digest" 最終更新を実行し、この MessageDigest の最終ハッシュ値を計算して返します。

質問 1: 「指定された byte[] を使用した更新」とはどういう意味ですか?

質問 2: 「ダイジェスト」によって行われる最終更新は何ですか?

SignHash=sha256(last.getSign()上記はconcat (公開鍵の一部のパディング)) を意味しますか?

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

java - DigestOutputStream が正しいダイジェスト値を報告しない

クラスパスにDigestOutputStreamあるテストの正しいダイジェストを計算していない理由を理解するために、単体テスト内に次のものがあります。.jpg

パスはしますassertArrayEquals()が、決勝assertEquals()は異なる結果で失敗します。

失敗:

DigestOutputStream が正しい値を返さないのはなぜですか?

そして、完全を期すために、各ケースについて私が読んでいるものは次のとおりです。

これは、すべての場合にクラスパスから読み取っている画像です。

Al_Bundy_Shoot_Me_$12.jpg

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

java - Java messageDigest ファンキーな出力

Java の MessageDigest を使用してハッシュ プロジェクトを実行しています。ランダムに生成された文字列によって作成されたハッシュとの衝突を作成したいと考えています。文字列が本当にランダムであることを確認しました。ただし、ダイジェストを出力すると、何らかの理由で常に "[B@" で始まり、8 ビットとの衝突を検出しようとすると、明らかにすべてが "[" で始まります。これが私のコードです:

誰かがこれを以前に見たことがありますか/それを正しくするために何をすべきか知っていますか? ありがとう

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

java - SHA1 が AES より遅いのはなぜですか? JCE

私は現在、暗号プリミティブを使用するアプリケーションを構築しています。暗号化とハッシュには、javax.crypto と java.security パッケージを使用します。ベンチマークを行ったところ、ECB-AES-128 は SHA1 よりも高速であることが判明しました。AES テストに使用したコード:

ハッシング用

暗号化にかかる時間: ~4 秒。ハッシュにかかる時間: ~10 秒。構成: Core i5 3570-3.4Ghz、8Gb RAM (重要かどうかは不明)

暗号化はハッシュよりも時間がかからないのはなぜですか? ハッシュ関数はもっと速くなるはずです。私は何か間違ったことをしていますか?ありがとうございました

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

java - Java 暗号化/セキュリティ エラー

以下に、SHA1 を使用してメッセージのハッシュを作成し、ハッシュを出力し、RSA アルゴリズムを使用してメッセージを暗号化し、暗号化されたメッセージを出力し、メッセージを復号化してハッシュを再度出力するコードをいくつか示します。最初と 3 番目の印刷メッセージは、どちらも元のメッセージの暗号化されていないハッシュであるため、一致するはずですが、私のコードでは一致しません。理由を教えてもらえますか? ありがとう。私のコードは次のとおりです。

更新: 私はすでにこれを持っています.2番目のファイルにあったので削除しました. 私の方法は次のとおりです。

しかし、これは次を返します:

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

java - MD5 使用時の NoSuchAlgorithm 例外

例外で失敗しNoSuchAlgorithmます。

MessageDigest ドキュメント]( http://docs.oracle.com/javase/7/docs/api/java/security/MessageDigest.html ) 言います:

Java プラットフォームのすべての実装は、次の標準 MessageDigest アルゴリズムをサポートする必要があります。 MD5 SHA-1 SHA-256 これらのアルゴリズムについては、Java Cryptography Architecture Standard Algorithm Name Documentation の MessageDigest セクションで説明されています。他のアルゴリズムがサポートされているかどうかを確認するには、実装のリリース ドキュメントを参照してください。

では、なぜ例外がスローされるのでしょうか。

幸いなことに

完全に機能し、エレガントですが、それでもかなり基本的な失敗のように見えます。私は何が欠けていますか?