我用KeyPairGenerator生成RSA密钥对,而ive注意到它一直在生成完全匹配的密钥,而不是像这样的随机密钥吗?也许有人有想法为什么会这样?
我的代码现在看起来像这样:
private static KeyPair generateKeyPair(Provider provider, int keySize) throws Exception
{
KeyPair keyPair = null;
/* get the eracom keystore - access to the adapter */
//KeyStore keyStore = KeyStore.getInstance("CRYPTOKI", provider.getName());
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA", provider.getName());
keyPairGenerator.initialize(keySize);
keyPair = keyPairGenerator.generateKeyPair();
return keyPair;
}
问题解决了:
这与HSM和我使用的提供程序有关。看看Joachim Sauer回复的评论。
最佳答案
运行经过稍微修改的代码版本(以使其编译)可以很好地工作(即多次运行会产生不同的密钥:
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(1024);
keyPair = keyPairGenerator.generateKeyPair();
System.out.println(keyPair.getPrivate());
System.out.println(keyPair.getPublic());
您使用的提供者是否可能...行为异常?
provider.getName()
的值是多少?