JDK中的加密提供程序

时间:2013-09-29 08:41:06

标签: java cryptography

是否正确理解为了使用例如Java在Java中进行加密。 Cipher,我必须选择一个外部提供程序进行设置,即JDK没有附带并包含“默认”提供程序?

2 个答案:

答案 0 :(得分:3)

这取决于您拥有的Java版本。从Java 1.4开始,JCE默认包含在默认提供程序堆栈中。在{$JRE_HOME}/lib/security/java.policy查看您的默认提供商。你会看到像

这样的东西
  

提供商列表及其优先订单(见上文):    security.provider.1 = sun.security.provider.Sun security.provider.2 = sun.security.rsa.SunRsaSign   security.provider.3 = sun.security.ec.SunEC   security.provider.4 = com.sun.net.ssl.internal.ssl.Provider   security.provider.5 = com.sun.crypto.provider.SunJCE   security.provider.6 = sun.security.jgss.SunProvider   security.provider.7 = com.sun.security.sasl.Provider   security.provider.8 = org.jcp.xml.dsig.internal.dom.XMLDSigRI   security.provider.9 = sun.security.smartcardio.SunPCSC   security.provider.10 = sun.security.mscapi.SunMSCAPI

表示默认的提供者堆栈(此处的顺序很重要)。

答案 1 :(得分:0)

您可以检查 SSL/TLS 握手的默认算法,并根据需要进行更改。
查看文件 {$JRE_HOME}/lib/security/java.policy

ssl.KeyManagerFactory.algorithm=SunX509
ssl.TrustManagerFactory.algorithm=PKIX