Java公钥大小

德利森·朱(DélissonJune)

为了与服务进行互操作,我必须使用RSA来加密某些值,该密钥的大小似乎小于Java上的最小512位。我有什么办法可以放宽该政策?

BigInteger e = new BigInteger("13082845549543033994073971762152947067", 10);
BigInteger m = new BigInteger("229110545576645850236522690668306544921", 10);

RSAPublicKeySpec spec = new RSAPublicKeySpec(m, e);
KeyFactory keyFac = KeyFactory.getInstance("RSA");
PublicKey publicKey = keyFac.generatePublic(spec);

// ^^^^ java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: RSA keys must be at least 512 bits long
奥尔多

您可以使用BouncyCastle提供程序。只需在您的代码之前加上

java.security.Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());

并改变线

KeyFactory keyFac = KeyFactory.getInstance("RSA");

进入

KeyFactory keyFac = KeyFactory.getInstance("RSA", "BC");

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章