2012-09-24 210 views
2

我使用JSCH API查找RSA SSH密鑰的長度。如何使用java查找SSH RSA密鑰的密鑰長度

我用下面的代碼來做到這一點:

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(); 
}