java.security.InvalidKeyException: invalid key format ssl invalid key format

原创
2018/06/05 10:18
阅读数 2.7W
AI总结

问题:openssl 证书格式错误

java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: invalid key format
    at sun.security.rsa.RSAKeyFactory.engineGeneratePrivate(Unknown Source)
    at java.security.KeyFactory.generatePrivate(Unknown Source)
    at com.utils.RsaDigest.signToBytes(RsaDigest.java:126)
    at com.utils.RsaDigest.signToBase64StringPrivateKeyStr(RsaDigest.java:97)
    at com.utils.YifenqiClient.getSignature(YifenqiClient.java:240)
    at com.utils.YifenqiClient.main(YifenqiClient.java:343)

sun.security.pkcs.PKCS8Key.decode(Unknown Source)

如果是使用openssl 生成的私钥:

    文本格式:对byte[]数组进行 base64加密的文本内容,上下,各有一行无用内容

开发问题:

    1.无用2行内容,没有删除。

    2.有多余换行符,这个在调试时,注意没有/r/n

    3.过多的问题是不清楚文本已经base64加密了,所以进行加解密操作时,可以用过base64.decode() 解密后的内容,进行私钥生成。

    4.重新生成公私钥

privateKeyStr:private_key中的加密内容(只能是一串字符串,不能有换行符)

public static String signToBase64StringPrivateKeyStr(String data, String privateKeyStr)  {
		byte[] keyBytes = Base64.decodeBase64(privateKeyStr);
		byte[] signBytes = signToBytes(data.getBytes(), keyBytes);
		return Base64.encodeBase64String(signBytes);
}

4.PKCS8Key.decode(Unknown Source)  需要确定,是否对生成的密钥,进行了pkcs8的格式化操作。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
AI总结
返回顶部
顶部