给定两个SSH2密钥,如何检查它们是否属于Java中的同一密钥对?

And*_*avu 4 java validation rsa

我正试图找到一种方法来验证两个SSH2密钥,一个私有密钥和一个公共密钥,属于同一个密钥对.我使用JSch来加载和解析私钥.

更新:可以显示如何从私钥(SSH2 RSA)重新生成公钥的代码段将解决此问题.

Cam*_*ner 9

您可以使用BouncyCastle轻量级API 执行此操作.

例如:

InputStream in = new FileInputStream("path/to/private/key");
AsymmetricKeyParameter privateKey = PrivateKeyFactory.createKey(in);
RSAPrivateCrtKeyParameters rsaPrivateKey = (RSAPrivateCrtKeyParameters)privateKey;
BigInteger modulus = rsaPrivateKey.getModulus();
BigInteger publicExponent = rsaPrivateKey.getPublicExponent();
RSAKeyParameters publicKeyParams = new RSAKeyParameters(false, modulus, publicExponent);
Run Code Online (Sandbox Code Playgroud)

RSAKeyParameters类代表实际的关键.

希望有所帮助!