文档章节

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

@ccny
 @ccny
发布于 2018/06/05 10:18
字数 265
阅读 427
收藏 0

问题: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的格式化操作。

© 著作权归作者所有

共有 人打赏支持
下一篇: im架构
@ccny

@ccny

粉丝 14
博文 113
码字总数 26759
作品 0
东城
架构师
私信 提问
Mecached Client for Golang

Memcached Client for Golang golang版本的memcached客户端,使用二进制协议,支持分布式,支持连接池,支持多种数据格式 特性 支持多server集群 与memcached使用二进制协议通信 支持连接池 ...

盘古大叔
2016/02/26
382
0
Nginx源码分析系列2:系统错误提示信息汇总

error no.0---Success error no.1---Operation not permitted error no.2---No such file or directory error no.3---No such process error no.4---Interrupted system call error no.5---I......

强子哥哥
2013/12/07
0
1
微型 PHP 框架--FocusPHP

FocusPHP FocusPHP is a micro php framework TODO 完善docker开发环境 增加后台管理 框架与项目分离 完善单元测试,使用Travis CI持续集成 备注 数据库文件中,username=admin, password=ad...

mylxsw
2015/10/30
535
0
Ethereum HD KDF

There's a long discussion about using BIP32 (the Bitcoin HD wallet KDF) and BIP44 (the KDF path standard) for Ethereum. It was raised that perhaps a different scheme could be us......

wmzsonic
2018/01/12
0
0
nginx 反向代理http和https配置

nginx可以反向代理http,同样也可以代理https,只是需要ssl证书。这里推荐一个好用的证书: https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E 步骤非常详细。 安装nginx 参照:...

674591788
2017/07/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

使用Airflow来调度Data Lake Analytics的任务

今天我们来介绍一下使用Airflow来调度 Data Lake Analytics(后面简称DLA)的任务执行。DLA作为一个数据湖的解决方案, 客户有每天周期性的调度一些任务从DLA查询数据回流到业务系统的需求。因...

迷你芊宝宝
29分钟前
3
0
简单的file获取文本内容且, 修改文本内容(java8)

题主, 因入职新公司, 表设计混乱, 不得不手动写一个小脚本,获取所有字段后,重新写入至新表中; 思路 顺序如下 原sql 具体, 获取行 , 根据行开头的" ,"截取内容, 重新输入到txt, 中就可以了; 代...

尾生
36分钟前
3
0
嵌入式编程(一):51单片机如何将函数 定义到指定程序地址

在单片机编程使用中,会涉及到将某些函数定义到指定的code区。此时需要对工程文件进行配置修改才可完成。本期针对单片机平台做出说明介绍 1、测试目标 将函数testaddr定义到0x6000地址 2、测...

Music121
40分钟前
1
0
Java Android几个重要的基础知识

Java 1.数据类型 bit(位):0或1计算机存储处理信息的最基本的单位 byte(字节):8个bit(上面表格数字的单位是byte) 2. m与n数值交换 //m=2,n=3; m=m^n; //m=2^3 n =m^n; //n =2^3^3=2 m=m...

Coding缘
42分钟前
4
0
好程序员教程之配置H5的滚动条样式示例代码

配置H5的滚动条样式示例代码有不少的小伙伴在网上寻找,本篇文章好程序员小编和大家分享一下配置H5的滚动条样式示例代码,希望对HTML5开发感兴趣的小伙伴有所帮助,下面我们一块来看一下吧:...

好程序员IT
45分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部