再来讲述jsk和keystore的区别之前,我们首先应该知道这两个东西到底是干什么的?他们有什么关联嘛?
最近在接受一个移动端项目的时候,前一任开发告诉我这个是使用jks来签名打包的,必须使用android studio 来打包这个软件。由于电脑配置的问题,我第一时间内心就充满了拒绝。
jks和keystore的相同点
这两个都是用来打包Android APK项目的时候对项目进行签名的加密算法。标识该APK的唯一性。
jks和keystore的区别
jks
- 是Android studio 软件生成的签名证书信息
- 打包依赖于Android studio(没有深入研究过,是否可以通过其他方式打包不得而知,如果有其他方式请留言告诉小编)
keystore
- 是通过keytool 命令生成的签名证书信息(网上有很多伙伴说是eclipse里面生成的,小编没有用过eclipse不太清楚哈)
- 很多第三方市场,我们上传apk的时候,他们只支持keystore(如:百度地图开发版SHA1值和发布版SHA1值的获取)
- 不依赖于第三方软件,可以通过命令的形式打包(详情参考)
jks 转 keystore
- jks 转 pkcs12
keytool -importkeystore -srckeystore /your-path/demo.jks -srcstoretype JKS -deststoretype PKCS12 -destkeystore /your-path/client.p12
-importkeystore 从其他密钥库导入一个或所有条目
-srckeystore 源密钥库名称
/your-path/demo.jks jks文件所在位置
-srcstoretype 源密钥库类型
-deststoretype 目标密钥库类型
-destkeystore 目标密钥库名称
/your-path/client.p12 生成的pkcs12文件所在位置
<!-- keytool -importkeystore -srckeystore demo.jks -srcstoretype JKS -deststoretype PKCS12 -destkeystore client.p12 -->
2. pkcs12转keystore
keytool -importkeystore -srckeystore /your-path/client.p12 -srcstoretype PKCS12 -destkeystore /your-path/demo.keystore -deststoretype JKS
/your-path/client.p12 pkcs12文件所在位置
/your-path/demo.keystore 生成的keystore文件所在位置
keystore 转 jks
参考jks转keystore方法,此处替换未keystore -> pkcs12 -> jks