获取程序自身签名公钥+程序自检测签名

来源:互联网 发布:linux下usb调试工具 编辑:程序博客网 时间:2024/05/17 08:02
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 blocke.printStackTrace();}        return null;    }}


0 0
原创粉丝点击