0

在 android 开发者页面 ( http://developer.android.com/tools/publishing/app-signing.html#secure-key ) 中,它声明:

将包含您的私钥的密钥库文件保存在安全的地方。

这是否意味着我们应该将 release.keystore 文件保存在本地计算机上的某个位置(而不是应用程序内部)?

或者我可以将它保存在src/main/assets文件夹中,因为密钥库受密码保护?但另一方面,keyPasswordstorePassword存储在 build.gradle 文件中,因此将 release.keystore 文件存储在其中src/main/assets不是一个好主意?最安全的方法是什么?

4

3 回答 3

4

您应该release.keystore在应用程序之外保护某些地方的安全,例如您的本地计算机。

如果您想在将来更新您的应用程序,则只有使用相同的密钥签名才能更新您的应用程序。

例如,如果您将其放入您的应用程序并且有人接管它,那么他们将能够通过使用密钥签名来发布您的应用程序。

编辑:关于保护密钥的官方 Android 建议

您作为开发人员实体的声誉取决于您始终正确保护您的私钥,直到密钥过期。以下是一些确保您的密钥安全的提示:

  • 为密钥库和密钥选择强密码。
  • 不要将您的私钥提供或借给任何人,也不要让未经授权的人知道您的密钥库和密钥密码。
  • 将包含您的私钥的密钥库文件保存在安全的地方。
于 2016-01-27T03:01:47.310 回答
2

不,永远不要以任何方式或形式共享您的密钥库。

您的密钥库不需要,也不应该在您的应用程序资产中。

它只是为您签署您的发布版本。没有其他人应该拥有它或知道它的密码。

您需要您的密钥库来证明应用程序确实是您制作的。这也是您必须使用相同的密钥库对应用程序进行签名才能发布更新的原因。只有您应该能够发布更新,并通过使用您的密钥库签署应用程序来证明它。

如果您分发密钥库,您只是让某人猜测或暴力破解您的密钥库密码,然后用它签署应用程序。换句话说,他可以假装他是你

您不会找到任何关于此的广泛文​​档,因为这应该只是常识。它与使您能够在互联网上安全地支付某些东西或发送签名电子邮件的技术相同:公钥加密。


事实上,我只是对您想要共享您的密钥库感到困惑,我可以假设您不知道它是什么或它做什么。这就是为什么我试图至少解释上面的基本知识。

作为旁注,因为我不得不提到任何人都可以从应用商店下载您的应用并查看您的源代码、资源或资产——基本上不需要技术知识。
如果您将您的密钥库放入您的资产中,并因此将其与您的 apk 一起发送,那么对于任何有恶意的人来说,这将是一个早期的圣诞节。这几乎就像把你家的钥匙交给想要抢劫你的窃贼。

于 2016-01-27T03:38:06.540 回答
0

最好复制它并将其存储在本地计算机/您的在线存储库/谷歌驱动器上。如果丢失它,您将无法向同一应用程序发布更新。

于 2016-01-27T03:05:36.513 回答