我正在使用JSCH API查找RSA SSH密钥的长度。

我使用以下代码来做到这一点:

KeyPairRSA KPR = (KeyPairRSA) KeyPairRSA.load(jsch, keypath);
System.out.println("size " +KPR.getKeySize());

这总是返回长度为1024。我认为它与API本身有关。
谁能告诉我如何找到RSA / DSA SSH密钥的长度?

非常感谢。

最佳答案

我是JSch的作者。

这是Bug或KeyPair *类的不完整。
刚刚出于密钥对生成目的引入了它们。
但是,在我们的内部开发版本中,对KeyPair *类进行了大修,并且
该方法效果很好。

#这是题外话,但我们增加了对Putty私钥格式的支持,这是一个奖励! :-)

无论如何,该修复程序将在下一个版本中提供,如果您迫不及待想要它,
将KeyPairRSA#getKeySize()替换为以下内容,

public int getKeySize(){
  return (new java.math.BigInteger(n_array)).bitLength();
}

09-25 21:46