Android 获取签名信息(MD5、SHA1、SHA256)

1.工具类:

package com.example.mygtest;

import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.util.Log;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class SignaturesUtils {
    private static final String TAG = SignaturesUtils.class.getSimpleName();

    private static byte[] getSignBytes(Context context) {
        try {
            PackageManager pm = context.getPackageManager();
            PackageInfo packageInfo = pm.getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES);
            return packageInfo.signatures[0].toByteArray();
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        return null;
    }

    private static String bytesToHex(byte[] bytes) {
        StringBuilder builder = new StringBuilder();
        for (byte b : bytes) {
            builder.append(String.format("%02x", b));
        }
        return builder.toString();
    }

    public static String getMD5(Context context) {
        try {
            byte[] sig = getSignBytes(context);
            // MD5
            MessageDigest md = MessageDigest.getInstance("MD5");
            String md5 = bytesToHex(md.digest(sig));
            Log.i(TAG, "getMD5=" + md5);
            return md5;
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
    }

    public static String getSHA1(Context context) {
        byte[] sig = getSignBytes(context);
        try {
            MessageDigest md = MessageDigest.getInstance("SHA-1");
            String sha1 = bytesToHex(md.digest(sig));
            Log.i(TAG, "getSHA1=" + sha1);
            return sha1;
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
    }

    public static String getSHA256(Context context) {
        byte[] sig = getSignBytes(context);
        try {
            // SHA-256
            MessageDigest md = MessageDigest.getInstance("SHA-256");
            String sha256 = bytesToHex(md.digest(sig));
            Log.i(TAG, "getSHA256=" + sha256);
            return sha256;
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
    }

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值