kin*_*ton 18 java cryptography sha256
我的代码在Android上运行良好.当我用JRE 1.6将它移植到我的Windows 64位机器时,代码不起作用.
当我运行以下代码行时:
final MessageDigest digest = MessageDigest.getInstance("SHA256")
Run Code Online (Sandbox Code Playgroud)
我得到以下异常:
java.security.NoSuchAlgorithmException:SHA256 MessageDigest在java.security.MessageDigest.getInstance(未知来源)的java.security.Security.getImpl(未知来源)的sun.security.jca.GetInstance.getInstance(未知来源)中不可用
我在Internet上发现人们声称可以将SHA256与Sun JRE附带的标准加密提供程序一起使用,人们说我需要使用其他提供程序,例如Bouncy Castle.
我宁愿不使用其他提供商.它可以使它工作吗?
Dav*_*ant 35
如果您对可用于JCA服务的算法存在疑问,则您的第一个调用端口应该是JCA 标准算法名称文档.保证在符合JCA的JVM中由MessageDigest服务支持的算法是:
MD2MD5SHA-1SHA-256SHA-384SHA-512提供商为这些算法提供别名很常见,这就是它可能与Bouncy Castle一起使用的原因,但如果你能最大限度地提高可移植性,你应该坚持这些.
如果您将代码更改为以下代码,它将按预期工作:
final MessageDigest digest = MessageDigest.getInstance("SHA-256");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27645 次 |
| 最近记录: |