这可能是一个新手问题。我正在使用 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 个字节?我在这里错过了什么吗?