android keystore
来源:互联网 发布:生意专家软件好用吗 编辑:程序博客网 时间:2024/04/28 14:39
1、生成私钥
-genkey
产生一个键值对(公钥和私钥)-v
允许动作输出-alias<alias_name>
键的别名。只有前八位字符有效。-keyalg
产生键的加密算法。支持DSA和RSA。-keysize
产生键的长度。如果不支持,keytool用默认值1024 bits.通常我们用2048 bits 或更长的key。-dname
专有名称,描述谁创建的密钥。该值被用作自签名证书的颁发者和主题字段。注意你可以不在命令行指定。如果没有指定keytool会提示你(CN, OU, and so on)。
-keypass
键的密码。
主要为了安全起见,如果没提供,keytool会提示你输入。
-validity
键的有效期,单位:天
Note: A value of 10000 or greater is recommended.
-keystore.keystore
用于存储私钥的文件。-storepass
私钥存储文件的密码。
主要为了安全起见,如果没提供,keytool会提示你输入。这个密码不会存储在你的shell历史记录中。
keytool -genkey -v -keyalg DSA -keysize 1024 -sigalg SHA1withDSA -validity 20000 -keystore Mystore.keystore -alias devel -keypass pwd -storepass pwd
2、读取android keystore 中的信息,
在命令窗口中输入:keytool -list -v -keystore keystoreName - storepass keystorePassword
3、对apk进行签名:
在命令行中输入:jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore {keystore文件路径} -storepass {私钥存储文件的秘钥,即keystore的秘钥} {要签名的apk} {生成keystore时,定义的别名}
该命令在JDK 1.7以上使用
-keystore.keystore
包含你私钥的存储文件-verbose
显示输出动作。-sigalg
签名算法,用 SHA1withRSA
.-digestalg
消息摘要算法,用 SHA1
.-storepass
存储文件的密码。主要为了安全起见,如果没提供,jarsigner会提示你输入。这个密码不会存储在你的shell历史记录中。
-keypass
私钥的密码。主要为了安全起见,如果没提供,jarsigner会提示你输入。这个密码不会存储在你的shell历史记录中。
注意:1、使用命令对apk进行签名的时候,会产生警告,可忽略。警告如下:
警告:
未提供 -tsa 或 -tsacert, 此 jar 没有时间戳。如果没有时间戳, 则在签名者证书的到期日期 (2039-03-05) 或以后的任何撤销日期之后, 用户可
能无法验证此 jar。
a、解决方案:
jarsigner -verbose -digestalg SHA1 -sigalg MD5withRSA-tsa https://timestamp.geotrust.com/tsa -keystore new.keystore -keypass coo -storepass coo -signedjar signed.apk(签名后apk的名字) sign.apk(要签名的apk) new.keystore
该方法问题:-tsa 的网址在命令行中有时会访问失败。{jarsigner: 无法对 jar 进行签名: javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake}
二、在签名过程遇到的jarsigner 错误: java.util.zip.ZipException: invalid entry compressed size (expected 10434 but got 10610 bytes) 异常。
这是因为默认给apk做了debug 签名,所以无法做新的签名
这时就必须点工程右键->Android Tools ->Export Unsigned Application Package.
或者从AndroidManifest.xml的 Exporting上也是一样的
然后再基于这个导出的unsigned apk做签名,导出的时候最好将其目录选在你之前产生keystore的那个目录下,这样操作起来就方便了。
另外,也可以用压缩软件打开apk包,删除保重的META-INF文件。在进行签名也可以。
大家有好的解决方案可交流一下。谢谢!
- android keystore
- android keystore
- android keystore
- Android Studio 默认keystore 以及自定义keystore
- android生成keystore 和dedug.keystore
- 【Android Studio】 默认keystore 以及自定义keystore
- Android Studio 默认keystore 以及自定义keystore
- Android Studio 默认keystore 以及自定义keystore
- Android Studio 默认keystore 以及自定义keystore
- Android Studio 默认keystore 以及自定义keystore
- Android Studio 默认keystore 以及自定义keystore
- Android Studio 默认keystore 以及自定义keystore
- android debug.keystore
- android keystore的使用
- android keystore的生成
- android keystore的使用
- keyStore用于android打包
- Android 提取keystore私钥
- Git学习札记——进阶
- TextView属性 盘点
- phpStudy在linux下的使用说明
- VS 2013 win32控制台应用程序 动态链接库的导出与使用实例
- c++ 程序设计 week3
- android keystore
- androidstudio使用中的问题(实时更新)
- 学一点 mysql 双机异地热备份----快速理解mysql主从,主主备份原理及实践
- Qt QtableView小结
- JavaScript prototype 使用介绍
- 主动模式下FTP的详细工作过程
- SQL案例:反向思维(发生额案例)
- EditText 属性盘点
- Python - abs vs fabs