签名文件kestore和jks的在作用上基本上没有太大区别,主要是生成来源不一样,它们是由不同的IDE生成,keystore文件一般是由Eclipce或dos命令行生成,而jks一般是在Android studio上自动生成。
目录
1.jks转化为keystore
2.keystore转化为jks:
要实现这个两种签名文件的相互转化,需要用到一个工具:keytool。
首先了解一下keytool命令的相关指令,cmd输入:keytool help ,如下图:
1.jks转化为keystore
cmd命令: keytool -importkeystore -srcstoretype JKS -srckeystore [jks文件绝对路径(包含文件名)] -deststoretype PKCS12 -destkeystore [生成的keystore文件绝对路径(包含文件名)]
效果如下:
代码:
C:\Users\LOVE\Desktop\temp\test>keytool -importkeystore -srcstoretype JKS -srckeystore testkey0.jks -deststoretype PKCS12 -destkeystore testkey0.keystore
输入目标密钥库口令:
再次输入新口令:
输入源密钥库口令:
已成功导入别名 releasekey 的条目。
已完成导入命令: 1 个条目成功导入, 0 个条目失败或取消
除了这种方法之外,还可以先把jks文件转话为p12文件,然后在把p12文件转化为keystore文件,相对麻烦一点,但是效果是完全一样的。博主平时只用第一种,第二种这里就不做赘述了,毕竟能一步完成的动作为什么要两步呢,毕竟效率还是很重要的。
注意:输入秘钥口令是不会把秘钥显示出来的,避免泄露,输入完成后,直接回车即可。我这里的文件路径都是当前路径,如果不是当前路径要输入包含文件名的绝对路径。
2.keystore转化为jks:
cmd命令:keytool -v -importkeystore -srcstoretype PKCS12 -srckeystore [keystore文件绝对路径(包含文件名)] -deststoretype JKS -destkeystore [生成的jks文件绝对路径(包含文件名)]
效果如下:
代码如下:
C:\Users\LOVE\Desktop\temp\test>keytool -v -importkeystore -srcstoretype PKCS12 -srckeystore test1.keystore -deststoretype JKS -destkeystore test1.jks
输入目标密钥库口令:
再次输入新口令:
输入源密钥库口令:
已成功导入别名 releasekey 的条目。
已完成导入命令: 1 个条目成功导入, 0 个条目失败或取消
[正在存储test1.jks]
生成文件:
执行完相应的指令后,就会在指定的目录下生成对应的签名文件,完美解决。