如何获取RSAPrivateKey的实例

时间:2013-07-07 22:40:08

标签: java cryptography

如何在给定RSA的den(假设为BigIntegers)的情况下创建java.security.interfaces.RSAPrivateKey的实例。 (此处d表示私有指数,e表示公共指数,n=pq表示RSA模数。)

我认为这很简单但我在文档或互联网上找不到任何东西。

如果有任何帮助,我已经安装了BouncyCastle。

编辑以澄清:我正在寻找一个实现该接口的类,并将de和/或n作为参数构造函数(或工厂函数的参数等),而不是创建新的随机密钥或从某个PKCS *格式的文件中读取密钥。

1 个答案:

答案 0 :(得分:3)

嗯,这里是你如何构建一个私有指数和模数(私钥所需的全部):

    KeyFactory keyFactory = KeyFactory.getInstance("RSA");

    RSAPrivateKeySpec privateKeySpec = new RSAPrivateKeySpec(
            new BigInteger("57791d5430d593164082036ad8b29fb157791d5430d593164082036ad8b29fb157791d5430d593164082036ad8b29fb157791d5430d593164082036ad8b29fb1", 16),
            new BigInteger("57791d5430d593164082036ad8b29fb157791d5430d593164082036ad8b29fb157791d5430d593164082036ad8b29fb157791d5430d593164082036ad8b29fb1", 16)
    );

    RSAPrivateKey privateKey = (RSAPrivateKey) keyFactory.generatePrivate(privateKeySpec);