安卓系统中的私钥是什么?

11
我读了关于签名Android应用的这篇文章。我使用Eclipse导出我的Android应用程序,需要创建一个密钥库(成功创建)和一个带有别名的私钥(也成功创建)。所以我知道必须使用私钥对应用进行签名。
然而,这篇文章没有明确解答以下问题:
- 什么是私钥? - 每个应用程序都应该拥有另一个密钥,还是它们应该共享同一个私钥? - 什么是别名? - 应用程序为什么有有效期?

1
@downvoter:请留下评论解释您的负评。 - MC Emperor
1
不是我给你点的踩,但你应该在Wikipedia上获取有关公钥/私钥的大量信息。 - nkr
3
我认为这是一个合理的问题,他并不是要求有关公共/私有身份验证的技术信息,而更多地是询问在Android环境下的实际影响。 - Jay Bobzin
2个回答

11

私钥是一种加密工具,用于验证您是否是应用程序的所有者。任何要更新到Google Play商店的构建版本都必须使用您的私钥进行签名以证明它是合法的构建版本。

因此,您想要上传到商店的每个不同的应用程序都应该有自己的私钥。如果您丢失了这个私钥,就无法上传任何新版本的应用程序,因此请确保将其存储在安全的地方并备份!

但是,出于方便考虑,您可以在同一个密钥库中存储多个私钥。(尽管我不这样做,我发现为每个项目使用不同的密钥库更方便。)

别名只是密钥的易于阅读的名称。没有更多或更少。

值得注意的是,当您执行Eclipse“运行”时,它会使用称为调试密钥的东西来运行应用程序。这很好用,因为您没有尝试上传此构建版本到商店,但这就是为什么需要使用单独的构建流程来构建您的应用程序以供部署的原因。

生命周期的有效性是技术要求。只需将其设置为将来的时间即可,不必担心。


嘿,只是想澄清一下,每个我发布的应用程序都有一个密钥库和一个私钥?例如,应用程序A有一个私钥,应用程序B有另一个私钥。如果我想发布应用程序B的更新,我会使用应用程序B的私钥而不是应用程序A的私钥吗?感谢您阅读和撰写此答案。 - user3364963
1
是的,每个应用都应该有一个私钥。我还建议为每个应用程序拥有一个单独的密钥库,这样如果您想要仅授予某个私钥的访问权限,您可以轻松地这样做。但是,您也可以将两个私钥存储在同一个密钥库中。 - Jay Bobzin

1
签名就像是您的Android应用程序的证书(类似于Web证书) - 它证明您是该应用程序的所有者。正如您提供的链接清楚地表明的那样,每个应用程序都必须进行签名。
理论上,来自开发人员的每个应用程序都应该使用相同的签名(毕竟,这是您的签名,而不是应用程序的签名)。
别名只是您的密钥的别名,您用它来引用签署应用程序时使用的密钥库。
至于寿命,不是所有东西都能永久存在。那些签名(或证书,如果您愿意这么说)可以持续超过25年。这不是您需要担心的事情。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接