我正在使用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();
}