public class UtilSelfCheck {
private static final String apksign = "************************************************************************************";
//程序自检测签名
public static boolean check(Context context) {
try {
String sign = getPublicKey(context);
if(apksign.equals(sign))
return true;
else
return false;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
// 获取程序自身的签名公钥
private static String getPublicKey(Context context) {
try{
PackageManager pm = context.getApplicationContext().getPackageManager();
List<PackageInfo> apps = pm.getInstalledPackages(PackageManager.GET_SIGNATURES);
Iterator<PackageInfo> iter = apps.iterator();
while (iter.hasNext()) {
PackageInfo packageinfo = iter.next();
String packageName = packageinfo.packageName;
if (packageName.equals(context.getPackageName())) {
//DebugUtils.debug("ZzbApplaication","--------->" + packageinfo.signatures[0].toCharsString());
CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
X509Certificate cert = (X509Certificate) certFactory.generateCertificate(new ByteArrayInputStream(packageinfo.signatures[0].toByteArray()));
String pubKey = new String(Base64.encode(cert.getPublicKey().getEncoded()));
return pubKey;
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
获取程序自身签名公钥+程序自检测签名
最新推荐文章于 2022-03-18 15:59:49 发布