java中怎么读取.pem格式文件中的 PrivateKey

ewall_lyc 2007-06-17 04:39:31
在网上找了很久,发现以下代码:

BufferedReader br = new BufferedReader(new FileReader("my-prvkey.pem"));
String s = br.readLine();
String str = "";
s = br.readLine();
while (s.charAt(0) != ’-’){
str += s + "\r";
s = br.readLine();
}

//编码转换,进行BASE64解码
BASE64Decoder base64decoder = new BASE64Decoder();
byte[] b = base64decoder.decodeBuffer(str);

//生成私匙
KeyFactory kf = KeyFactory.getInstance("RSA");
//X509EncodedKeySpec keySpec = new X509EncodedKeySpec(b);
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(b);
//PublicKey privateKey = kf.generatePublic(keySpec);
PrivateKey privateKey = kf.generatePrivate(keySpec);

-----------------------------------------------------
上面的代码好像不行,哪们大歌大姐看看代码有什么问题,或者有更好的办法,不胜感激
...全文
7216 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxhxiaoyi51 2011-06-29
  • 打赏
  • 举报
回复
楼主,你好,我在工作中碰到一个你这样的问题,我QQ是67283088 能否加QQ 详细聊一下
chong_dian_qi 2008-02-29
  • 打赏
  • 举报
回复
谢谢你的答案,我也遇见同样的问题,重要知道怎么做了
ewall_lyc 2007-06-19
  • 打赏
  • 举报
回复
已经解决:
先用下面的命令把pem中的私钥导出成per文件,再用java中的PKCS8EncodedKeySpec读取即可

openssl pkcs8 -topk8 -inform PEM -outform DER -in rsa_pem.key -out pkcs8_der.key -nocrypt
believefym 2007-06-19
  • 打赏
  • 举报
回复
http://blog.csdn.net/AbnerChai/archive/2004/07/02/32283.aspx
看看这个,有没有帮助
Cappuccino_mhc 2007-06-18
  • 打赏
  • 举报
回复
呵呵

友情帮顶

我是不会啊
ewall_lyc 2007-06-18
  • 打赏
  • 举报
回复
我现在需要从pem文件中读取私钥,然后用私钥做数字签名
believefym 2007-06-18
  • 打赏
  • 举报
回复
私钥,不随证书分发的,只有公钥才分发

67,541

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧