发生在实际开发过程中,同事生成的密钥keystore,在密码正确情况下,在本人的QtCreator环境下却发生密码错误的情况
Keystore简单的理解是密钥库,为确认应用唯一性,创建的签名文件。
Keystore密钥记录会在创建时候,记录开发者应用名称,别名,姓名,单位,组织,城市,省份,国家代码等简单信息。
Keystore是确保App在篡改和盗版下能够确保程序唯一性。(同一App不用签名无法覆盖安装)
同事创建好的签名文件,发送给本人进行签名打包,在Qt版本,以及编译器相同情况发下发生密码错误情况,当时人都蒙蔽了,发生什么事情?
密码都是直接从密码文档中直接复制粘贴的,不可能错误。
但是怀疑是不是签名文件有问题,或者本身QtCreator环境问题。
但是自己创建的密钥却能正确输入密码,正常使用打包。
但是怀疑是不是密钥不一样,使用指令
keytool -list -v -keystore android_release.keystore
输入原设置的密码,发现可以在keytool工具中打开密钥内容,证明密钥没有问题。
自己生成的密钥
仔细对比发现
密钥库类型不一样(同事是标准的PKCS12密钥类型,我的是JKS密钥类型)
为啥密钥类型一样,密钥文件是通过Keytool工具生成的,Keytool工具是集成在JDK中。原来是使用JDK不一样。我用的是JDK是JDK1.8版本,生成的JDK是JKS类型也就是解密的时候也是JKS类型,导致同事的PKCS12密钥文件会一直提示错误,更改到其他版本的JDK即可
在密码正确情况下分析事情,通过比对可发现密钥的区别性,通过区别性就可以找到解决方法