0
我想找到方法来确保任何人从其他任何地方调用应用程序的网址,除了应用程序无效,我使用okhttp3。在我的头请求我有一个用户代理,其值是在需要时产生的应用密钥哈希和从未登录使用从无效请求中保护Android应用程序的URL
try {
PackageInfo info = getPackageManager().getPackageInfo("MY PACKAGE NAME", PackageManager.GET_SIGNATURES);
for (android.content.pm.Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String sign=Base64.encodeToString(md.digest(), Base64.DEFAULT);
Log.e("MY KEY HASH:", sign);
// Toast.makeText(getApplicationContext(),sign, Toast.LENGTH_LONG).show();
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
这样一来,每发送一个请求,我检查是否有用户代理的值匹配我的服务器上的一个(从keystore +签名的apk生成的)在完成任何其他事情之前。最重要的是,数据全部是POST和url都是https。
我的主要担心是有人可以从apk获取提取应用程序密钥哈希值?即使是使用xposed的高级用户,内存转储e.t.c
这是否足够安全?