Android开发:Keytool,创建一个密钥库?

前端之家收集整理的这篇文章主要介绍了Android开发:Keytool,创建一个密钥库?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图准备我的应用程序为谷歌市场,但它是比预期更具挑战性.我似乎无法掌握签名应用程序的整个概念,但更具体地说,我的问题是我已经安装了 eclipse的keytool插件,但是当我想创建一个证书时,它要求我选择一个密钥库(输入文件名和密钥库密码),我不明白我应该作为一个文件输入什么,因为它实际上希望我通过浏览选择文件,并且如何继续导出该文件,Google遗憾的是没有想出非常好或明确的答案

解决方法

您需要为新的密钥库文件提供位置和文件名,以防创建新的密钥库文件.或者,您可以选择“使用现有密钥库”并浏览到现有密钥库文件位置.

编辑:我以为我会提供详细的答案.希望这个信息将是有用的.

什么是签名和为什么需要.

android使用的apk签名机制就是usage of digital signature应用于应用程序的字节码和资源的例子,以确保:

>诚信(下载后不会篡改您的应用程序)
>真实性 – 您是将应用发布到GooglePlay的用户

为了更好地了解digital signature,我建议您也可以通过public-key cryptography浏览.

这是如何工作的

Android使用与标准Java应用程序签名/验证相同的标准JDK工具:

> jarsigner – 使用提供的私钥签署数据,并使用certificate(即与您的身份相关的公钥)验证数据,
> keytool – 在密钥库中管理私钥和证书.这些钥匙需要jarsigner.

使用jarsigner手动签名应用程序或使用IDE导出签名的应用程序(在引擎盖下使用keytool和jarsigner)时,您可以找到放置在已签名的.apk存档的Meta-INF目录中的签名相关文件

> CERT.SF – 包含应用程序组件的SHA哈希的文件
> CERT.RSA(或.DSA) – 上述文件公开证书的数字签名,以验证此签名.
您可以阅读更多关于唱歌工作的细节here.

如何正确签署申请发布.

This article很好地描述了您需要遵循的步骤.

注意:在继续签名之前,请考虑重要的预发布步骤:删除日志/关键字符串文字,使用proguard进行混淆等.

下面我将提供一些重点:

生成您的私钥并将其放在java密钥库中.

如果您没有密码库,则可能需要先创建密钥库.创建密钥库时,您需要创建密钥库密码,用于确保密钥存储库数据的完整性(即,您将被警告,密码库在某人之后被篡改,而不是新增证书).实际上,如果您的密钥库文件保持安全,则此密码不是至关重要的.如果你有一天忘记了,你可以走开.

生成私钥时,还将要求您创建PrivateKey密码,该密码将用于加密密钥库内的私钥.这是确保您需要保留的非常重要的密码

>你的私钥真的很私密.最重要的是
>没有这个密码,您将无法使用您的私钥签名并发布您的应用程序的未来更新;

当您在Eclipse中生成新的私钥时,还会要求您提供用于创建自签名证书的身份信息.

作为下一步,您将使用指定密钥库文件中的私钥对应用程序进行签名,并将.apk更新为与上述签名相关的文件.

一些重要术语:

密钥库只是一个特定格式的私钥/证书的单个二进制文件保存列表.它使用由KeyStore.java提供的API以编程方式访问.您的密钥库可以包含多个私钥条目,每个私钥都由其别名标识.
在大多数情况下,您的密钥库将具有单个私钥,并具有与此私钥匹配的单个自签名证书.

密钥库密码用于密钥库内容的完整性检查.
如果您松开此密码,但您仍然拥有存储在其中的私钥密码,则可以通过运行以下cmd来“克隆”您的密钥库并提供新的密钥库密码:

keytool -importkeystore -srckeystore
path/to/keystore/with/forgotten/pw -destkeystore
path/to/my/new/keystore

提供新密码,并将旧的密钥库密码留空 – 您只会收到警告.然后,您可以使用新的密钥库,并删除旧密钥库.
还有其他方法可以检索您的私钥,而不使用密钥库密码.

私钥密码 – 保护(加密)密钥库内的私钥.这是非常重要的,因为它允许您访问您的私钥,除其他外,为您的应用程序签名更新.通常很难恢复它.

自签名证书 – 非常简单的证书将您的身份(姓名/组织/电子邮件)绑定到您的公钥.此证书在签名操作期间被添加到.apk文件中,并将在安装前在用户设备上使用以验证.apk.

猜你在找的Android相关文章