我试图找出KeyPair的位长。在寻找有关如何执行此操作的解决方案时,我遇到了以下代码片段。
public boolean checkKey(RSAKey key) {
if ( key.getModulus().bitLength() == 1024 )
return true;
return false;
}
我期望的输入是“ KeyPair”。有人可以指出我的意思是:
演示如何将KeyPair转换为RSAKey
或演示如何计算KeyPair的位长
最佳答案
这应该针对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();
}