java - 如何使用java查找SSH RSA key 的 key 长度

标签 java ssh rsa jsch

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

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

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

这总是返回我的长度 1024 。我认为这是 API 本身的错误。 谁能告诉我如何查找 RSA/DSA SSH key 的长度?

提前非常感谢。

最佳答案

我是 JSch 的作者。

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

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

无论如何,该修复将在下一个版本中提供,如果您等不及了, 将 KeyPairRSA#getKeySize() 替换为以下内容,

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

关于java - 如何使用java查找SSH RSA key 的 key 长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12564787/

相关文章:

java - 如何在不转换为 keystore 的情况下从 PEM 证书和 key 构建 SSLSocketFactory?

java - 我应该如何让程序停止并等待某些事情? java

java - 关闭可运行的 JOptionPane

ssh - 如何在shell脚本中使用ssh命令?

c# - 在 C# 中解密 RSA 编码的消息

java - 如何获取 Spring Batch Job 后的失败次数?

svn - 从Subversion推送到Web服务器

macos - 从 ssh session 到 localhost 的 SCP 文件

java - 对 Java Security 和 BouncyCaSTLe API 感到茫然和困惑

node.js - NodeJS 加密 RSA,与 Elixir/Erlang PublicKey 不兼容?