Android应用计算自己的MD5校验和

use*_*994 5 java android checksum md5

Android应用程序如何在已安装时计算自己的md5校验和?尝试使用谷歌搜索,但所有结果都是关于另一个计算他人校验和的应用程序.

Nik*_*kov 9

这有什么用?要与某些东西进行比较,预期的校验和需要在APK中.但如果有人更改了您的APK(重新包装等),他们也可以轻松更改预期值.你可以从服务器上获取它,但是如果它们弄乱了你的包,那么禁用它也不是很难.

此外,一些工具将直接修补Dalvik缓存中的代码,从而在不触及APK的情况下更改应用程序的功能.

通常,您只需获取APK的路径,读取为二进制并使用计算MessageDigest.您可以使用PackageManager获取应用信息,然后使用ApplicationInfo#sourceDir为您提供包的位置.顺便说一句,这可能不适用于JB(4.1及更高版本)上的付费应用程序,因为您无权阅读实际的APK(这是​​"前向锁定"的结果,又称"应用程序加密").

  • 威士忌提到它当然有用.对于希望减少在线排行榜作弊的开发人员,除了推送分数之外,让应用程序向服务器发送散列表意味着它是一种防止apk篡改的故障保护方法,即使它仍会屈服于动态黑客攻击 (2认同)