如何使用java查找SSH RSA密钥的密钥长度

时间:2012-09-24 12:08:08

标签: java ssh rsa jsch

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

我使用以下代码执行此操作:

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

这让我总是长度为1024.我认为它本身就是API的错误。 谁能告诉我如何找到RSA / DSA SSH密钥的长度?

提前多多感谢。

1 个答案:

答案 0 :(得分:3)

我是JSch的作者。

这是一个错误或KeyPair *类的不完整性。 它们刚刚被用于密钥对生成目的。 但是,在我们的内部开发版本中,KeyPair *类已经过大修,并且 这种方法效果很好。

#这是偏离主题的,但我们已经添加了对Putty私钥格式的支持,作为奖励! : - )

无论如何,修复程序将在下一个版本中提供,如果您不能等待它, 用以下内容替换KeyPairRSA#getKeySize(),

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