RSA gemalto加密/解密

时间:2019-07-03 19:23:29

标签: gemalto

我正在尝试使用X509EncodedKeySpec将原始公共密钥转换为String格式的PublicKey。我是使用第三方提供商金雅拓创建的。

当我使用Java标准Java库生成公共密钥时,我会将编码后的字符串转换为PublicKey,但是当我使用Gemalto库创建公共密钥时。我正在例外。

String base64PublicKey =“ ----- BEGIN RSA公钥----- MIGJAoGBALWuuAJWAKOKWnMcbr1go52TiYGPB6wT2knLJnY840V3glq2IQ9iLQn8 STAFoNAoahfr / bsqNBGEoG1yT0wsIY1SbIjkD0I / A94jHQxwcTxXWP / mQxKg75t6 I / vJl3fSjcZgHg5JrtA + yeM5uCfHETbICBK4N54lxCzv0JaYgVk1AgMBAAE = -----结束RSA公钥----- “

删除第一行和最后一行

base64PublicKey = base64PublicKey.replaceAll(“ \ n”,“”).replace(“ ----- BEGIN RSA PUBLIC KEY -----”,“”).replace(“ ----- END RSA公钥-----“,”“);

此行编码后的公钥将如下所示:

MIGJAoGBALWuuAJWAKOKWnMcbr1go52TiYGPB6wT2knLJnY840V3glq2IQ9iLQn8STAFoNAoahfr / bsqNBGEoG1yT0wsIY1SbIjkD0I / A94jHQxwcTxXWP / mQxKg75t6I / vJl3fSjcZgHg5JrtA + yeM5uCfHETbICBK4N54lxCzv0JaYgVk1AgMBAAE =

X509EncodedKeySpec keySpec =新的X509EncodedKeySpec(Base64.getDecoder()。decode(base64PublicKey)); KeyFactory keyFactory = KeyFactory.getInstance(“ RSA”) PublicKey publicKey = keyFactory.generatePublic(keySpec);

我应该能够获得PublicKey。但我得到以下例外: java.security.spec.InvalidKeySpecException:java.security.InvalidKeyException:IOException:解析错误,不是序列     在sun.security.rsa.RSAKeyFactory.engineGeneratePublic(RSAKeyFactory.java:205)     在java.security.KeyFactory.generatePublic(KeyFactory.java:334)

0 个答案:

没有答案