我一直在阅读一些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();
}
我想这两个问题的答案都是否定的,但我不确定。
通常私钥包含以下数据:
N
-半素数模D
-私有指数P
&Q
-N
-public指数
私钥至少必须包含:
如果不知道
p
和q
是不容易的,尽管您可以猜到它,但它几乎总是一个小素数,最常见的是3
或65537
。
两者都试一下,并检查密文是否有效。
我也尝试了npm ursa模块,不幸的是没有成功。
我使用命令“ssh-keygen-t rsa”创建了一个没有密码的公钥,我打算将其用于github,但我错误地发送了公钥和私钥...... 这到底意味着什么?
(我正在用MAC) 我的id_rsa以 但我希望一开始 我已将我的身份证发送给rsa。发布给服务器管理员以获得对服务器的访问权,因此我不想生成新密钥。 > 有什么方法可以将我的id_rsaopenssh私钥转移到RSA私钥吗?(请指挥。) 如果我可以传输,我是否还需要传输id_rsa。酒吧(请发命令。)看来是我的错。pub没有像id_rsa这样的头,所以我不确定是否也应该传输它。 非常感谢。
当我用OpenSSL生成RSA密钥对时,似乎私钥(私有指数)总是小于公钥(模)。它是由RSA设计的吗?
并且我将这个函数称为用RSA公钥加密DSA密钥的函数:
我试图从模数&私有/公共指数重建一个RSA keypair。对公钥的转换是正确的,但对私钥的转换在比较编码的私钥时失败。 当使用此重建私有/公共键盘进行加密时,它工作(!)在Java中,但是在PHP中使用rebuild keypair时,解密部分失败(加密工作),所以在我看来,rebuild私钥与“原始”私钥是不同的。 仅供参考:使用“原始”keypair在PHP中一切都很好。 所以我的问题是:如