Java 公钥大小

标签 java encryption rsa public-key

为了与服务进行互操作,我必须使用 RSA 加密一些值,其 key 大小似乎小于 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

最佳答案

我检查了您的代码,得到以下结果:

SunPKCS11-NSS RSA public key, 128 bits (id 1, session object)
modulus: 229110545576645850236522690668306544921
public exponent: 13082845549543033994073971762152947067

异常具体发生在哪里?

关于Java 公钥大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25849076/

相关文章:

java - 为数组索引赋值和为java中的变量赋值之间的性能差异

java - 从命令运行ant脚本,发生错误:Class not found: org. eclipse.jdt.core.JDTCompilerAdapter

PHP JWT 兼容 JSON Web Tokens Draft 11

c++使用通过数据包接收的 key 加密文本? key 沙皇?

Java Security - RSA 公钥和私钥代码问题

java - 计算机如何轻松生成加密 key ?

java - 构建的.jar文件(在Netbeans 11.2 maven中构建)无法连接到mysql

Java 自动转换对象

java - Hibernate - 将列存储为加密,并仅在运行时解密

ssh - 从 SSH 服务器获取公钥