我正在使用JSCH API来查找RSA SSH密钥的长度。
我使用以下代码执行此操作:
KeyPairRSA KPR = (KeyPairRSA) KeyPairRSA.load(jsch, keypath);
System.out.println("size " +KPR.getKeySize());
这让我总是长度为1024.我认为它本身就是API的错误。 谁能告诉我如何找到RSA / DSA SSH密钥的长度?
提前多多感谢。
答案 0 :(得分:3)
我是JSch的作者。
这是一个错误或KeyPair *类的不完整性。 它们刚刚被用于密钥对生成目的。 但是,在我们的内部开发版本中,KeyPair *类已经过大修,并且 这种方法效果很好。
#这是偏离主题的,但我们已经添加了对Putty私钥格式的支持,作为奖励! : - )
无论如何,修复程序将在下一个版本中提供,如果您不能等待它, 用以下内容替换KeyPairRSA#getKeySize(),
public int getKeySize(){
return (new java.math.BigInteger(n_array)).bitLength();
}