欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android获取apk签名指纹的md5值(防止重新被打包)的实现方法

程序员文章站 2024-03-03 21:13:34
本文实例讲述了android获取apk签名指纹的md5值以防止重新被打包的实现方法。分享给大家供大家参考,具体如下: 做个记录(这里只是java层的签名校验,java层容...

本文实例讲述了android获取apk签名指纹的md5值以防止重新被打包的实现方法。分享给大家供大家参考,具体如下:

做个记录(这里只是java层的签名校验,java层容易被破解,我建议apk加固下)

获取md5值来进行apk签名校验, 可以防止apk重新被打包。

下面我说说怎么获取apk签名的md5值(有三种方法)

1.用代码获取签名指纹的md5值

/**
 * md5加密
 * @param bytestr 需要加密的内容
 * @return 返回 bytestr的md5值
 */
public static string encryptionmd5(byte[] bytestr) {
  messagedigest messagedigest = null;
  stringbuffer md5strbuff = new stringbuffer();
  try {
    messagedigest = messagedigest.getinstance("md5");
    messagedigest.reset();
    messagedigest.update(bytestr);
    byte[] bytearray = messagedigest.digest();
    for (int i = 0; i < bytearray.length; i++) {
      if (integer.tohexstring(0xff & bytearray[i]).length() == 1) {
        md5strbuff.append("0").append(integer.tohexstring(0xff & bytearray[i]));
      } else {
        md5strbuff.append(integer.tohexstring(0xff & bytearray[i]));
      }
    }
  } catch (nosuchalgorithmexception e) {
    e.printstacktrace();
  }
  return md5strbuff.tostring();
}

/**
 * 获取app签名md5值
 */
public string getsignmd5str() {
  try {
    packageinfo packageinfo = mactivity.getpackagemanager().getpackageinfo(mactivity.getpackagename(), packagemanager.get_signatures);
    signature[] signs = packageinfo.signatures;
    signature sign = signs[0];
    string signstr = encryptionmd5(sign.tobytearray());
    return signstr;
  } catch (packagemanager.namenotfoundexception e) {
    e.printstacktrace();
  }
  return "";
}

2. keytool工具

使用keytool工具获取签名md5信息,下面 key是签名文件

复制代码 代码如下:
c:\program files\java\jdk1.8.0_05\bin>keytool -list -v -keystore c:\users\administrator\desktop\key

3. eclipse 里面可以查看签名信息 这里就不赘述

更多关于android相关内容感兴趣的读者可查看本站专题:《android控件用法总结》、《android视图view技巧总结》、《android文件操作技巧汇总》、《android操作sqlite数据库技巧总结》、《android操作json格式数据技巧总结》、《android数据库操作技巧总结》、《android编程之activity操作技巧总结》、《android编程开发之sd卡操作方法汇总》、《android开发入门与进阶教程》及《android资源操作技巧汇总

希望本文所述对大家android程序设计有所帮助。