Android签名工具

常用的android的签名工具有:jarsigner 和apksigner。jarsigner使用keystore文件,apksigner使用pk8+x509.pem。

什么是.pem和.pk8文件

  • .pem
    在android对apk签名的时候,.pem这种文件就是一个X.509的数字证书,里面有用户的公钥等信息,是用来解密的。文件格式里面不仅可以存储数字证书,还能存各种key。

  • .pk8
    以.pk8为扩展名的文件,应该和PKCS #8是对应的,用来保存private key。

keystore文件转化为pk8+pem

1.将keystore文件转换为pkcs12格式

keytool   -importkeystore -srckeystore my.keystore   -destkeystore tmp.p12 -srcstoretype JKS         -deststoretype PKCS12

2. 将PKCS12 dump成pem

openssl  pkcs12 -in tmp.p12 -nodes -out tmp.rsa.pem

tmp.rsa.pem 是文本格式可以直接查看。
打开文本可以看到私钥(PRIVATE KEY )和证书(CERTIFICATE);

复制“BEGIN CERTIFICATE” “END CERTIFICATE” 到(新建个文件) cert.x509.pem

复制 “BEGIN RSA PRIVATE KEY” “END RSA PRIVATE KEY” 到(同上) private.rsa.pem

cert.x509.pem 文件即是我们最后需要的证书文件

3.生成pk8格式的私钥

openssl pkcs8 -topk8 -outform DER -in     private.rsa.pem -inform PEM -out private.pk8 -nocrypt
cert.x509.pem private.pk8 

即是我们最后需要的文件。

*备注:
-nocrypt 这个参数设定key加密 如果设置了这个参数 下面签名 只要证书+key 不需要密码了 如果加密 应该
openssl pkcs8 -topk8 -outform
DER -in private.rsa.pem -inform PEM -out private.pk8 接下来输入密码*

4.用法

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

jarsigner 的用法

jarsigner -verbose -keystore android.keystore -signedjar android_signed.apk android.apk android.keystore

使用这种方式会报错:找不到 的证书链。×× 必须引用包含专用密钥和相应的公共密钥证书链的有效密钥库密钥条目。

jarsigner -verbose -keystore  DT.jks -signedjar  signed.apk  unsigned.apk "别名"

参考

Android签名证书jks转换成signapk使用的分离模式

Android签名文件转化为pk8和pem相关推荐

  1. 签名证书keystore,jks,pk8,x509.pem

    .keystore,.jks本身是一个东西,没有区别:在eclipse上生成的是.keystore后缀,在andorid studio上生成的是.jks后缀: 生成.keystore http://w ...

  2. keystore文件转换格式为pk8+x509.pem

    android 一般除了使用jarsigner签名 还有使用signapk 后者位于android源码 前者位于jdk中.两者使用的文件格式不同前者使用JKS 后者使用公钥+私钥 是分开的 第一步 先 ...

  3. android签名文件查看工具,ionic 发布android,并查看签名文件。

    1. 生成android包文件 ionic cordova build android --release 这时候已经cd到你app的目录下面了,然后 2. 生成签名文件 keytool -genke ...

  4. android 签名文件与sha1获取

    签名与sha1 获取 1.签名作用: 一个Android项目可以以它的包名作为唯一标识符,但是手机上的应用可能不止这一个应用,如果手机上有两个应用恰好使用了同一个包名,那么其中一个应用程序就会覆盖另一 ...

  5. 创建自己的pk8, x509.pem并给app签名

    1, 生成key 命令: keytool -genkey -v -keystore app.keystore -alias gundam_wing -keyalg RSA -validity 2000 ...

  6. java Android OKHttp HTTPS 请求证书验证 PEM证书(1)

    地址:http://blog.csdn.net/doubleping/article/details/53331864 调用new CustomTrust() 即可产生OkHttpClient 关键点 ...

  7. Android数据转化为Excel表格导入导出

    最近需要用到把Android数据到处保存到Excel表格中,个人感觉也比较实用,所以就和大家分享一下.以前没接触过该怎么办呢?有问题找百度,只有你想不到的没有你找不到的.在网上也找到了一些例子,自己又 ...

  8. 【Android签名文件META-INF】

    android安装包apk中,有一个META-INF文件夹,该文件夹下面必须有以下几个扩展名的文件:.SF,.RSA,*.MF.一般为MANIFEST.MF,包名.SF,包名.RSA(也有可能是EC或 ...

  9. Android安全笔记-Android签名文件及初略架构

    APK里META-INF文件夹中有里面有3个文件: CERT.RSA:包含了公钥信息和发布机构信息: MANIFEST.MF:对apk中每一个文件进行hash摘要: CERT.SF:不仅仅有MANIF ...

  10. Android 手机设置 Charles 代理,pem 证书安装不上?

    「注意文章红字部分,100% 解决问题」 最近在家办公,需要远程链接内网调试,but 公司的 vpn 账号只能单设备登录,只好使用手机代理了. 本文使用的代理是 Charles,具体 Charles ...

最新文章

  1. ajax传输是用utf8,使用ajax时UTF8编码不起作用
  2. 六项任务、多种数据类型,谷歌、DeepMind提出高效Transformer评估基准
  3. BZOJ1051 [HAOI2006]受欢迎的牛 Tarjan 强连通缩点
  4. Java阻塞队列 LinkedBlockingDeque
  5. 第二阶段冲刺-个人总结09
  6. jeecg 与 jeecg-p3有什么区别?
  7. linux重启openfire服务,Centos下Openfire详细安装过程
  8. linux 服务器加 SSH 黑名单
  9. 钉钉直播回放视频的下载方法( fd抓包配合m3u8 )
  10. 信捷XC系列PLC编程软件安装方法
  11. python实时语音转写_使用实时语音转写_语音交互服务 SIS_SDK参考_Python SDK_华为云...
  12. whai is gradient vanishing and exploding ?
  13. syzlang语法编写案例学习 —— Looking for Remote Code Execution bugs in the Linux kernel
  14. iphone及ipad屏幕尺寸参考
  15. mysql 时间连续性查询_MYSQL 连续性问题求解
  16. MUI-list(列表),普通列表、带箭头列表、带数字角标列表、带图文列表
  17. 快速迁移可持续使用的开发环境
  18. 发布Sensor_msgs::JointState关节位置或速度实现Barrett Hand机械手控制
  19. 军人英语计算机考试,军人职称考试|全国专业技术人员计算机应用能力考试
  20. 东软已经失去发展的动力了吗(转自东软内网)

热门文章

  1. 计算机论文的字体要求,论文格式及字体大小要求(标准)
  2. 篮球比赛JAVA代码_Java编程实现NBA赛事接口调用实例代码
  3. 北理乐学C语言寻找特殊偶数,北理乐学C语言答案-最新教程.doc
  4. 机器人技术创新与实践旧版本大纲
  5. Openssl建立CA系统
  6. 使用C语言打印出一个菱形
  7. oracle数据库查询空间大小,Oracle查看数据库空间使用情况
  8. worklist 需要传的参数
  9. [编程思想] POP OOP AOP
  10. python-snap7使用说明