如何验证签名的android .apk?

时间:2013-07-21 15:06:25

标签: android digital-signature

我用我的Keystore通过Eclipse签署了android应用程序。

我想要做的是我想验证这个应用程序是由我签名的,因为我只希望这个应用程序访问我的PHP Web服务。

我想到的是那个 1.我需要拥有与私钥对应的公钥 2.使用公钥验证申请是否由我签名

所以我的问题是 我的想法是否正确?
2.如何验证签名的.adk?
3. jarsigner -verbose -verify android.apk用于验证android.apk的完整性,但它不能正确验证吗?

2 个答案:

答案 0 :(得分:1)

恕我直言,你正在通过你的应用程序将apk的签名和身份验证混合到你的php服务器上。

为了确保您的应用是唯一访问您的网络服务的应用,您实际上可以从Google Play服务获取令牌,然后在您的php服务器上针对Google的证书验证该网络令牌!

http://android-developers.blogspot.co.il/2013/01/verifying-back-end-calls-from-android.html

答案 1 :(得分:0)

APK的签名告诉Android,签署版本2的人是签署版本1的人。它不会验证实际是谁,它只是确保同一个人签署了应用程序的所有版本。它是一种关于下载更新的安全方法。

如果要对Web服务进行身份验证,则不会使用此密钥。面对其他地方使用该密钥对安全性来说是一个坏主意。相反,您希望对所有对Web服务的调用使用https来加密通道。然后你可以做一些简单的事情,比如发送一个秘密密钥作为1个参数。这将为您提供基准的安全性。如果你想要更多,你真的需要一个apk不知道的秘密(例如用户输入的密码)。