1

我正在尝试找出KeyPair的位长。在四处寻找有关如何执行此操作的解决方案时,我遇到了以下代码片段。

public boolean checkKey(RSAKey key) {
    if ( key.getModulus().bitLength() == 1024 )
        return true;
    return false;
}

我期待的输入是“KeyPair”。有人可以指点我做的文档: -

  1. 演示如何将 KeyPair 转换为RSAKey
  2. 或 演示如何计算 KeyPair 的位长
4

1 回答 1

2

这应该为 RSA 密钥执行(假设keyPair是一个KeyPair实例):

PublicKey publicKey = keyPair.getPublic();

if (publicKey instanceof RSAPublicKey) {
  return ((RSAPublicKey) publicKey).getModulus().bitLength();
}

如果您需要检查其他键类型,只需相应地检查文档和代码,例如:

if (publicKey instanceof DSAPublicKey) {
  return ((DSAPublicKey) publicKey).getY().bitLength();
}
于 2013-03-05T08:27:13.497 回答