3

给定 RSA和(假设为 BigIntegers),如何创建java.security.interfaces.RSAPrivateKey的实例。(这里表示私有指数、公共指数和RSA 模数。)denden=pq

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

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

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

4

1 回答 1

7

好吧,在给定私有指数和模数的情况下,这是您如何构造一个(所有这些都是私有密钥所必需的):

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

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

    RSAPrivateKey privateKey = (RSAPrivateKey) keyFactory.generatePrivate(privateKeySpec);
于 2013-07-07T23:32:30.237 回答