2

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

4

2 回答 2

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 安全性。 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

它代表默认的提供程序堆栈(顺序在这里很重要)。

于 2013-09-29T08:51:40.383 回答
0

您可以检查 SSL/TLS 握手的默认算法,并在需要时更改它。
见文件{$JRE_HOME}/lib/security/java.policy

ssl.KeyManagerFactory.algorithm=SunX509
ssl.TrustManagerFactory.algorithm=PKIX
于 2021-04-07T09:08:43.367 回答