我有一个简单的问题给Java SSLMaven。
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
keyManagerFactory.init(KeyStore.getInstance(mykeyfile, password), password);
字符串
在上面的代码片段中,为什么需要提供2个密码?KeyStore.getInstance(mykeyfile, password)
这是我得到的密钥库。keyManagerFactory在init方法中使用密码的必要性是什么?
我在Javadoc中发现了这个,它很令人困惑,因此有了这个问题!
- Keystore class是这样说的。
- 文件-密钥库
- 文件密码-密钥库密码
- KeyManagerFactory
- KS-Key Store
- password -在KeyStore中恢复密钥的密码
1条答案
按热度按时间piztneat1#
一些Java密钥库格式,特别是JKS和JCEKS,可以为 store(文件)提供一个密码,并为该存储中的(或每个)私钥 * 提供单独的不同密码。自2017年以来,Oracle一直在推动Java开发人员和用户使用或切换到PKCS 12,并且(在Java中)PKCS 12不支持不同的密码,但是人们仍然可以使用其他格式,并且这种能力仍然存在于(大多是以前定义的)API中。(PS:这实际上是加密,而不仅仅是SSL/TLS; Java加密可以并且也用于许多其他事情。)