问题 什么是Android中的私钥?


我读 本文 关于签署您的Android应用程序。我使用Eclipse导出我的Android应用程序,不得不创建一个密钥库(成功)和一个带别名的私钥(也成功)。所以我知道我必须使用私钥对应用程序进行签名。

但是,该文章没有对以下问题做出任何澄清:

  • 什么是私钥?
  • 您制作的每个应用程序是否应该有另一个密钥,或者它们应该共享相同的私钥
  • 什么是别名?
  • 为什么应用程序具有有效期?

6001
2018-05-07 18:57


起源

@downvoter:请留言以解释downvote。 - MC Emperor
不是我的downvote,但你应该得到很多关于公钥/私钥的信息 维基百科。 - nkr
我认为这是一个有效的问题,他不是要求关于发布/私有身份验证的技术信息,而是要求在android环境中实际含义。 - Jay Bobzin


答案:


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

因此,您要上传到商店的每个不同应用程序都应该有自己的私钥。 如果您丢失了此密钥,您将无法上传任何新版本的应用, 所以一定要把它存放在安全的地方并进行备份!

但是,为方便起见,您可以在同一个密钥库中存储多个私钥。 (虽然我没有,但我觉得为每个项目设置一个不同的密钥库也更方便。)

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

值得注意的是,当您执行Eclipse“运行”时,它使用称为调试键的东西来运行应用程序。这样可以正常工作,因为您没有尝试将此构建上载到商店,但这就是您需要使用单独的构建过程来构建应用程序以进行部署的原因。

终身有效性是技术要求。只是在未来设定它并且不用担心它。


10
2018-05-07 19:03



嘿,所以只是为了澄清我发布的每个应用程序都有一个密钥库和一个私钥?例如。 App A的一个私钥和App B的另一个私钥。如果我想发布App B的更新,我使用应用B的私钥而不是应用A?谢谢你阅读和写这个答案 - user3364963
是的,每个应用都应该有一个私钥。我还建议为每个应用程序设置一个单独的密钥库,这样,如果您想让某人只访问您的一个私钥,您就可以轻松实现。但是你 可以 在同一个密钥库中有两个私钥。 - Jay Bobzin


签名就像您的Android应用程序的证书(想想网络证书有一些想法) - 它证明您是该应用程序的所有者。每个应用都必须签名,因为您提供的链接清楚地说明了。

从理论上讲,开发人员的每个应用程序都应该在同一个签名下(毕竟,它是>你的<签名,而不是应用程序的签名)

别名就是:密钥的别名,用于在签署应用程序时引用密钥库。

关于生命,不是一切都永远持续下去。这些签名(或证书,如果你愿意)可以持续超过25年。不是你需要担心的事情。


1
2018-05-07 19:03