keystore文件

Posted hookjc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了keystore文件相关的知识,希望对你有一定的参考价值。

keystore操作

1.运行时签名文件路径(debug)

de>/home/xiaoq/.android/debug.keystore
de>

2.生成签名文件(打包时使用)

de  >keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore
de>
android.keystore为文件名

技术图片

3.获取MD5和SH1

de  >keytool -list -v -keystore android.keystore -storepass 123456
de>
Android.keystore为文件名
  • 123456 为密码

  • 微信分享内的应用签名就是MD5

  • 百度地图SDK需要的SHA1就是SHA1

4.修改keystore文件密码

de  >keytool -storepasswd -new 新密码 -keystore android.keystore
de>

5.修改keystore文件别名

de  >keytool -changealias -keystore android.keystore -alias 原别名 -destalias 新别名
de>
6.修改keystore文件别名的密码
de  >keytool -keypasswd -alias 别名 -new android -keystore android.keystore 
de>
总结

Android开发中,在使用第三方的sdk(如,百度地图,微信分享,友盟统计等)提供的功能时通常都要事先申请密钥,在申请密钥时需要填写打包的keystore文件的数字签名(SHA1)。这样,只有使用打包的keystore文件生成的apk才能正常的调用这些第三方提供的功能。

那么如果我们把debug.keystore用我们打包的keystore文件替换掉,那么就可以共用数字签名

想要替换debug.keystore,那么打包的keystore文件的密码、别名等信息必须和默认debug.keystore的一样。

默认debug.keystore的信息如下:

de  >Keystore name: “debug.keystore”
Keystore password: “android”
Key alias: “androiddebugkey”
Key password: “android”
CN: “CN=Android Debug,O=Android,C=US
de>
具体操作参考上面的命令

附录

keytool命令

de  >-certreq     [-v] [-protected]
             [-alias <别名>] [-sigalg <sigalg>]
             [-file <csr_file>] [-keypass <密钥库口令>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-changealias [-v] [-protected] -alias <别名> -destalias <目标别名>
             [-keypass <密钥库口令>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-delete      [-v] [-protected] -alias <别名>
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-exportcert  [-v] [-rfc] [-protected]
             [-alias <别名>] [-file <认证文件>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-genkeypair  [-v] [-protected]
             [-alias <别名>]
             [-keyalg <keyalg>] [-keysize <密钥大小>]
             [-sigalg <sigalg>] [-dname <dname>]
             [-validity <valDays>] [-keypass <密钥库口令>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-genseckey   [-v] [-protected]
             [-alias <别名>] [-keypass <密钥库口令>]
             [-keyalg <keyalg>] [-keysize <密钥大小>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-help

-importcert  [-v] [-noprompt] [-trustcacerts] [-protected]
             [-alias <别名>]
             [-file <认证文件>] [-keypass <密钥库口令>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-importkeystore [-v]
             [-srckeystore <源密钥库>] [-destkeystore <目标密钥库>]
             [-srcstoretype <源存储类型>] [-deststoretype <目标存储类型>]
             [-srcstorepass <源存储库口令>] [-deststorepass <目标存储库口令>]
             [-srcprotected] [-destprotected]
             [-srcprovidername <源提供方名称>]
             [-destprovidername <目标提供方名称>]
             [-srcalias <源别名> [-destalias <目标别名>]
               [-srckeypass <源密钥库口令>] [-destkeypass <目标密钥库口令>]]
             [-noprompt]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-keypasswd   [-v] [-alias <别名>]
             [-keypass <旧密钥库口令>] [-new <新密钥库口令>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-list        [-v | -rfc] [-protected]
             [-alias <别名>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]

-printcert   [-v] [-file <认证文件>]

-storepasswd [-v] [-new <新存储库口令>]
             [-keystore <密钥库>] [-storepass <存储库口令>]
             [-storetype <存储类型>] [-providername <名称>]
             [-providerclass <提供方类名称> [-providerarg <参数>]] ...
             [-providerpath <路径列表>]
de>

来源:python脚本自动迁移

以上是关于keystore文件的主要内容,如果未能解决你的问题,请参考以下文章

生成以太坊系地址keystore的几种方法

生成以太坊系地址keystore的几种方法

安卓签名文件.keystore 和 .jks

如何访问jvm默认KeyStore?

keystore文件

带有 KeyStore 和 ServerSockets 的 Java SSL/TLS