我用我的Keystore通过Eclipse签署了android应用程序。
我想要做的是我想验证这个应用程序是由我签名的,因为我只希望这个应用程序访问我的PHP Web服务。
我想到的是那个
1.我需要拥有与私钥对应的公钥
2.使用公钥验证申请是否由我签名
所以我的问题是
我的想法是否正确?
2.如何验证签名的.adk?
3. jarsigner -verbose -verify android.apk用于验证android.apk的完整性,但它不能正确验证吗?
答案 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不知道的秘密(例如用户输入的密码)。