字符串到PublicKey标题太长

时间:2015-12-15 21:18:25

标签: java string security header base64

我试图以这种方式从字符串创建公钥:

byte[] keyBytes = Base64.decode(publicKeyStr.getBytes("utf-8"), Base64.DEFAULT);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
X509EncodedKeySpec spec = new X509EncodedKeySpec(keyBytes);
PublicKey publicKey = keyFactory.generatePublic(spec);

但是

keyFactory.generatePublic(spec);

导致错误:

java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: error:0D07207B:asn1 encoding routines:ASN1_get_object:header too long

创建PublicKey表单的任何其他解决方案和示例?

字符串是:

  

87Avu4YRFh25mG / 5 / vW7tFXORD3WYqByKZDHpcqstXKDyLYFtm8arbwXDUxcDRSJUKdZx07L1fGvExfslShssJ22nHA4bScQ7yhgrtsxNUa5NPPP / YlR9DLAnjFzf3AEbW26fLO5luQtDIDmjSvwNE6ZwAIjhRJ3HXpqw2hFMvc = AQAB

1 个答案:

答案 0 :(得分:1)

我在RSA. Java Encryption .NET Decryption

找到了解决方案

问题是我的字符串是一个字符串中的模数+指数。 当我把它分成两个不同的字符串并在那里生成。关键是成功产生的。编码UTF-16LE也存在问题。