我有一個在Android上運行良好的代碼。當我將它移植到帶有JRE 1.6的Windows 64位機器上時,代碼無法工作。異常調用MessageDigest.getInstance(「SHA256」)時
當我運行下面的代碼行:
final MessageDigest digest = 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與標準加密發現與Sun JRE一起提供的服務提供商,以及有人說我需要使用另一個提供商,例如Bouncy Castle。
我寧願不使用不同的供應商。是否有可能使其工作?
是,'「SHA256 「'是Bouncy中的別名。我有一個充氣城堡錯誤修復所用'「SHA256」'在快活的協議包中的一個,而不是'「SHA256」'這已經在JCE的標準名稱。這是接受比絕對最低更加的危險 - 它的作品的一種方式,但不是其他。 –
所以,呃,你當「保證」 MD5失敗怎麼辦。在Oracle JRE中,但只在某些機器上,而不在其他機器上......這讓我立即陷入困境。 :-( –
你檢查你的安全提供? –