关于keystore 证书转*.x509.pem 和*.pk8

 

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">最近同事分享了一篇文章</span><a target=_blank href="https://jaq.alibaba.com/community/art/show?spm=a313e.7916646.24000001.8.IxjB6x&articleid=339" style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">文章链接</a><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> ,是关于动态调试的,后来仔细一看,这个功能可不止动态调试那么简单了,用不好可是能做很多坏事呢</span><img alt="生气" src="http://static.blog.csdn.net/xheditor/xheditor_emot/default/mad.gif" style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);" /><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">。</span>

 

但是我可以怀着学习技术的心情在看,绝不做坏事。

这个文章说到了,怎么把classes.dex转成smali格式,smali相当于android的汇编语言;然后嵌入代码,最后重新打包。

问题出在最后,我手上的签名文件只有keystore类型,但是打包方式是

   java -jar signapk.jar cert.x509.pem private.pk8 *.apk signed.apk

 

 

 

我想应该有工具可以对证书进行转换吧,我搜索了一番,还真有!但貌似是个人做工具,还要分才能下。被逼无奈,只好自己搞一个吧。

 

在网络搜集了一些资料以后,准备下手了。

 

第一步:先准备好你的签名证书,debug.keystore(随便取了个名字)

 

第二步,转换

 

    #keytool   -importkeystore -srckeystore debug.keystore   -destkeystore tmp.p12 -srcstoretype JKS         -deststoretype PKCS12   >>info.txt

这一步将keystore转换为PKCS12格式,这样还不能查看证书信息了。

 

第三步,

 

    #openssl  pkcs12 -in tmp.p12 -nodes -out tmp.rsa.pem  >>info.txt

 

 

这时候我们得到tmp.rsa.pem。这里面有我们需要的信息:

 

Bag Attributes
    friendlyName: ****
    localKeyID: *******
Key Attributes: <No Attributes>
-----BEGIN PRIVATE KEY-----
*******
-----END PRIVATE KEY-----
Bag Attributes
    friendlyName: ****
    localKeyID:****
******
-----BEGIN CERTIFICATE-----
******************
-----END CERTIFICATE-----

(********内容不可见光,所以你们看不到)
大概就是这样的格式,看内容,证书的秘钥和私钥我们都拿到了。

 

 

接下来才是重要的

 

第五步,创建两个文件,分别是my.x509.pem和myprivate.rsa.pem,这两个文件的内容分别是:

my.x509.pem

 

Bag Attributes
    friendlyName: ****
    localKeyID:****
******
-----BEGIN CERTIFICATE-----
******************
-----END CERTIFICATE-----


myprivate.rsa.pem

 

 

 

 

Bag Attributes
    friendlyName: ****
    localKeyID: *******
Key Attributes: <No Attributes>
-----BEGIN PRIVATE KEY-----
*******
-----END PRIVATE KEY-----

 

 

到这个已经成功的一般,因为x509.pem已经有。

 

第六步,

openssl pkcs8 -topk8 -outform DER -in     myprivate.rsa.pem -inform PEM -out myprivate.pk8 -nocrypt  >>info.txt
!!!!!:-nocrypt 这个参数设定key不用加密,去掉则要输入密码。 

 

 

这样*.509.pem和*pk8都有了。

 

我用批命令写了一个工具。大家用得着就下载。

 

链接链接


 

 


 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值