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

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


我期望的输入是“ KeyPair”。有人可以指出我的意思是:


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

最佳答案

这应该针对RSA密钥执行(假设keyPairKeyPair实例):

PublicKey publicKey = keyPair.getPublic();

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


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

if (publicKey instanceof DSAPublicKey) {
  return ((DSAPublicKey) publicKey).getY().bitLength();
}

10-07 12:09