文章目录
完整性校验
-
每个软件发布时都要由开发人员签名,签名时用的密钥文件为其独有,破解者不可能拥有相同的密钥文件(除非被盗),因此证书签名信息成为 Android 软件的一种有效身份标识,若软件运行时的签名和发布时的不同,说明软件被篡改,可中止运行
-
Android SDK 提供检测软件签名的方法,可调用 PackageManager 类的 getPackageInfo(),为第二个参数传入
PackageManager.GET_SIGNATURES
,返回的 PackageInfo 对象的 signatures 字段就是软件发布时的签名,但此签名内容较长,不适合在代码中比较,因此可计算签名对象的 MD5 值,在代码中比较 -
实例代码:
private boolean checkSign() { try { PackageInfo packageInfo =