Mam kod, który działa dobrze na Androida. Kiedy przeportowałem go na mój 64-bitowy komputer Windows z JRE 1.6, kod nie działał.Wyjątek podczas wywoływania MessageDigest.getInstance ("SHA256")
Kiedy uruchomić następującą linię kodu:
final MessageDigest digest = MessageDigest.getInstance("SHA256")
otrzymuję następujący wyjątek:
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)
znalazłem na ludzi internetowych, twierdząc, że jest to możliwe do wykorzystania SHA256 ze standardowym krypto dostawca, który jest dostarczany z Sun JRE, a ludzie mówią, że potrzebuję innego dostawcy, na przykład Bouncy Castle.
Wolałbym nie korzystać z innego dostawcy. Czy to możliwe, aby działało?
Tak, '" SHA256 "' jest pseudonimem obecnym w Bouncy. Naprawiono błąd Bouncy Castle, który używał '' SHA256 "' w jednym z pakietów protokołu Bouncy, zamiast '' SHA-256 "', który był standardową nazwą w JCE. Jest to niebezpieczeństwo zaakceptowania czegoś więcej niż absolutne minimum - działa w jedną stronę, ale nie w drugą. –
Więc, co robisz, gdy "gwarantowana" MD5 zawiedzie. W Oracle JRE, ale tylko na niektórych maszynach, a nie innych ... To mnie teraz zaskoczyło. :-( –
Czy sprawdziłeś swoich dostawców zabezpieczeń? –