これはおそらく初心者の質問です。Javaでキーペアを生成しています:
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
SecureRandom random = SecureRandom.getInstance("SHA1PRNG", "SUN");
keyGen.initialize(512, random);
KeyPair keyPair = keyGen.genKeyPair();
RSAPrivateKey privateKey = (RSAPrivateKey)keyPair.getPrivate();
今、私は常に、privateKey.getModulus() と privateKey.getPrivateExponent() が「秘密鍵」を形成し、キー ジェネレーターに渡されるキーサイズ (512 ビット) と同じ大きさであると考えていました。
ただし、privateKey.getPrivateExponent().toByteArray() は、64 バイト (予想どおり) を返すこともあれば、65 バイト配列を返すこともあります。
なぜ時々65バイトなのですか?ここで何か不足していますか?