私はAndroid上でうまく動作するコードを持っています。 JRE 1.6を搭載したWindows 64ビットマシンに移植したとき、コードは機能しませんでした。MessageDigest.getInstance( "SHA256")を呼び出すときの例外
私は、次のコード行を実行すると:
java.security.NoSuchAlgorithmException: SHA256 MessageDigest not available
at sun.security.jca.GetInstance.getInstance(Unknown Source)
at java.security.Security.getImpl(Unknown Source)
at java.security.MessageDigest.getInstance(Unknown Source)
が、私は標準暗号でSHA256を使用することが可能であることを主張し、インターネットの人に見つかった:私は、次の例外を取得
final MessageDigest digest = MessageDigest.getInstance("SHA256")
をSun JREに付属のプロバイダと、たとえばBouncy Castleのような別のプロバイダを使用する必要があると言っている人がいます。
別のプロバイダを使用しないことをお勧めします。それを動作させることは可能ですか?
はい、 '「SHA256へのパラメータでなければなりません"はBouncyに存在するエイリアスです。私はJounの標準名である '' SHA-256''ではなく、Bouncyのプロトコルパッケージの一つに '' SHA256 ''を使ったBouncy Castleバグを修正しました。これは絶対最小以上のものを受け入れる危険です。一方的にしか動作しません。 –
だから、 "保証された" MD5が失敗したときはどうしますか? Oracle JREでは、一部のマシンのみで、他のマシンでは使用できません。 : –
あなたのセキュリティプロバイダを確認しましたか? –