在android开发者页面(http://developer.android.com/tools/publishing/app-signing.html#secure-key)中,它声明:
将包含私钥的密钥库文件保存在安全可靠的位置 的地方。
这是否意味着我们应该将release.keystore文件保存在我们本地计算机上的某个位置(不在应用程序内)?
或者我可以将它保存在src/main/assets
文件夹中,因为密钥库受密码保护吗?但另一方面,keyPassword
和storePassword
存储在build.gradle文件中,因此将release.keystore文件存储在src/main/assets
中并不是一个好主意?什么是最安全的方法?
答案 0 :(得分:4)
您应该将release.keystore
某些位置保护在应用程序之外,例如本地计算机。
如果您希望将来更新您的应用程序,只有使用相同的密钥签名才能更新您的应用程序。
例如,如果您将其放入应用程序并且有人接管它,那么他们将能够通过使用密钥签名来发布您的应用程序。
编辑:关于保护密钥的官方Android建议
您作为开发者实体的声誉取决于您的安全保障 私钥在任何时候都是正确的,直到密钥过期。这是 保证密钥安全的一些提示:
- 为密钥库和密钥选择强密码。
- 不要向任何人提供或借出您的私钥,也不要让未经授权的人知道您的密钥库和密钥密码。
- 将包含私钥的密钥库文件保存在安全可靠的位置。
答案 1 :(得分:2)
您的密钥库不需要,也不应该在您的应用资产中。
您只需签署发布版本即可。没有其他人应该拥有它或知道它的密码。
您需要密钥库来证明应用程序是由您真正制作的。这也是您必须使用相同的密钥库签署应用程序才能发布更新的原因。只有您应该能够发布更新,并通过使用密钥库对应用程序进行签名来证明它。
如果你分发你的密钥库,你只是让某人猜测或暴力破解你的密钥库密码,然后用它来签署应用程序。换句话说,他可以假装他是你。
你不会找到任何关于此的大量文档,因为这应该是常识。这是一种技术,使您可以安全地在互联网上支付某些费用或发送签名的电子邮件:公钥加密。
事实上,我很困惑你想要分享你的密钥库,我可以假设你不知道它是什么或它做了什么。这就是我尝试至少解释上述基础知识的原因。
作为旁注,我不得不提到任何人都可以从appstore下载你的应用程序并查看你的源代码,资源或资产 - 基本上不需要技术知识。
如果你把你的密钥库放到你的资产中,那么就把它与你的apk一起发送,对于任何有恶意的人来说,这只是一个圣诞节。这几乎就像把房子的钥匙交给那些想要抢劫你的窃贼。
答案 2 :(得分:0)
最好复制它并将其存储在本地计算机/您的在线存储库/谷歌驱动器上。如果丢失了,您将无法将更新发布到同一个应用程序。