• android获取apk签名信息


    因为工作需要,需要获取应用的apk传递给新浪微博或者微信去申请授权 所以需要程序内获取签名上传服务器 

    做法如下:
     
    public static String getAPPSecretString(Activity activity){
    String backString="";
    try {
    PackageInfo mPackageInfo=activity.getPackageManager().getPackageInfo(GlobalConfig.APP_PACKAGE_NAME, 64);
    Signature xx[]=mPackageInfo.signatures;
    byte[] arrayOfByte= mPackageInfo.signatures[0].toByteArray();
    backString= digest(arrayOfByte);
    } catch (NameNotFoundException e1) {
    e1.printStackTrace();
    }
    return backString;
    }
     
     
    private static final char hexDigits[] = { '0', '1', '2', '3', '4', '5',
    '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
     
    public static final String digest(String message) {
    try {
    byte[] strTemp = message.getBytes();
    MessageDigest mdTemp = MessageDigest.getInstance("MD5");
    mdTemp.update(strTemp);
    byte[] md = mdTemp.digest();
    int j = md.length;
    char str[] = new char[j * 2];
    int k = 0;
    for (int i = 0; i < j; i++) {
    byte byte0 = md[i];
    str[k++] = hexDigits[byte0 >>> 4 & 0xf];
    str[k++] = hexDigits[byte0 & 0xf];
    }
    return new String(str);
    } catch (Exception e) {
    return null;
    }
    }
    public static final String digest(byte[] strTemp) {
    try {
    // byte[] strTemp = message.getBytes();
    MessageDigest mdTemp = MessageDigest.getInstance("MD5");
    mdTemp.update(strTemp);
    byte[] md = mdTemp.digest();
    int j = md.length;
    char str[] = new char[j * 2];
    int k = 0;
    for (int i = 0; i < j; i++) {
    byte byte0 = md[i];
    str[k++] = hexDigits[byte0 >>> 4 & 0xf];
    str[k++] = hexDigits[byte0 & 0xf];
    }
    return new String(str);
    } catch (Exception e) {
    return null;
    }
    }
  • 相关阅读:
    流程控制之while循环
    流程控制之if判断
    基本运算符
    格式化输出的三种方式
    Python与用户交互
    解压缩
    布尔类型
    字典类型
    列表类型
    字符串类型
  • 原文地址:https://www.cnblogs.com/kukum/p/kukum_android_apk_sign.html
Copyright © 2020-2023  润新知