【发布时间】:2023-03-21 02:02:01
【问题描述】:
我一直在阅读一些 RSA 文献和堆栈溢出问题,但我没有得到明确的答案。
仅给定一个 RSA 私钥模数和私钥,这就是我所拥有的(对于所有与加密相关的操作也足够了),我可以获得相关的公钥模数和公钥吗?
另外,我可以只用这两个参数获得私钥的编码形式吗?我在 java 中尝试了以下操作(java 不是实际的要求),但是支持它的 OpenSSL 引擎失败并出现错误:04000090:RSA 例程:OPENSSL_internal:VALUE_MISSING
@NonNull
public static byte[] getEncodedRsaPrivateKey(@NonNull BigInteger nModulus, @NonNull BigInteger nPrivateExponent) throws NoSuchAlgorithmException, InvalidKeySpecException {
RSAPrivateKeySpec privateKeySpec = new RSAPrivateKeySpec(nModulus, nPrivateExponent);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PrivateKey privateKey = keyFactory.generatePrivate(privateKeySpec);
return privateKey.getEncoded();
}
我猜这两个问题的答案都是否定的,但我不确定。
【问题讨论】:
标签: java cryptography rsa private-key public-key