我用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()的值是多少?

10-04 11:06