Java RSA 公钥字符串错误

标签 java encryption rsa public

我正在尝试将字符串转换为 RSA 公钥,但总是出现错误... 公钥:

    -----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1OzdsHD2yN2USnmgTplY
otoh974+mQ9nw9T3UmxCossD9WjdPJ7UbHXeMVgFrY53x9YfPFmuA5/YNs1eXzSq
Y+GdJIrbdQCHDzWLzNv0mbbAvvv7s706F5HoAPMgjBYV7vZDbiIinupxpx5rns4u
AYJTWOyByCoSsJ9ucVg3kxl3dYrRk9VXH3dHar8CiypvDJPnBCS58xXgh12dPJES
35kvtkDmDsMoBcol3PIK7a8HaMQYmYsAPF+TzhURaUAcVJu/jhOUaDf/4w28JdaW
xykTaDqOZD72RYb1rovK3uFEfgKBJgaAFhPlY2/4m/eNW/SLfwSCR9FvHc88fYpJ
bwIDAQAB
-----END PUBLIC KEY-----

代码:

pub.replace("-----BEGIN PUBLIC KEY-----\n", "").replace("-----END PUBLIC KEY-----", "");
        byte[] publicByte = Base64.getDecoder().decode(pub);
        System.out.println(publicByte.length+"deb");

        X509EncodedKeySpec keySpec = new X509EncodedKeySpec(publicByte);
        KeyFactory keyFactory = KeyFactory.getInstance("RSA");

        PublicKey pkey = keyFactory.generatePublic(keySpec);

错误:

java.lang.IllegalArgumentException: Illegal base64 character 2d

我很乐意提供任何帮助。

最佳答案

0x2d 是-。连字符等仍然存在。 String.replace() 返回新值。它不会改变您调用它的字符串。

关于Java RSA 公钥字符串错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51264566/

相关文章:

java - 如何将许可证集成到其 Android 应用程序中?

javascript - 带有 rsa/ecb/oaepwithsha-256andmgf1padding 的 SubtleCrypto

c++ - 为什么我的代码不返回原始消息?

java - 如何在Java中生成给定RSA私钥的固定长度指数?

go - 替代 golang 中的 load_pem_private_key()

java - 0MQ ROUTER DEALER 范例在 Docker 容器中不起作用

java - 如何从java捕获错误并打印c程序触发器的流

java - 为什么java允许在静态泛型方法中使用形式类型参数

c - 非常基本的加密程序

java - BouncyCasLe 错误 : can't recognise key type in ECDSA based signer