1

KeyPairのビット長を調べようとしています。これを行う方法について解決策を探しているときに、次のコード スニペットに出会いました。

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

私が期待している入力は「KeyPair」です。誰かが次のいずれかを行うドキュメントに向けて私を指摘できますか:-

  1. KeyPair をRSAKeyに変換する方法を示す
  2. または、キーペアのビット長を計算する方法を実演します
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 に答える