我有一个客户端提供的CSR文件,我可以通过 JcaPKCS10CertificationRequest getPublicKey()。getAlgorithm()方法找到密钥类型(RSA / DSA),但我无法找到任何合适的方法来确定公钥的长度/大小(例如:1024/2048/4096位)。
答案 0 :(得分:2)
据我所知,没有任何通用的方法来获取公钥的“密钥大小”。相反,请检查您的公钥以查看它是否实现了RSAPublicKey或DSAPublicKey等接口。如果是,请使用各种接口方法从密钥中提取属性并获取其长度,例如:
PublicKey publicKey = yourRequest.getPublicKey();
int keySize
if (publicKey instanceof RSAPublicKey) {
keySize = ((RSAPublicKey)publicKey).getPublicExponent().bitLength();
} else if (publicKey instance DSAPublicKey) {
keySize = ((DSAPublicKey)publicKey).getY().bitLength();
} else {
// handle other public key types.
}