【发布时间】:2010-12-07 00:26:43
【问题描述】:
这可能是一个新手问题。我正在使用 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 字节?我在这里遗漏了什么吗?
【问题讨论】:
-
512 = 密钥中的位数。 512 / 8 = 64 字节。不知道为什么你会得到 65 个字节......
标签: java cryptography rsa