android 获取签名的md5值,获取Android MD5签名

方法1 AS Gradle工具

参考 Android Studio生成签名文件,自动签名,以及获取SHA1和MD5值 签名生成和获取 十分详细,不在叙述,

需要说明的是 : 获取的 MD5值 如:42:41:3B:BB:86:44:92:22:D0:4D:2A:E6:7F:98:4E:EE

替换“ :” ,转换成小写 ,就是应用的 MD5值 ,其它亦然

方法2 代码方式

不是我写的 ,记录一下

Activity 方法中

try { //BuildConfig.APPLICATION_ID 当前应用包名

PackageInfo packageInfo = getPackageManager().getPackageInfo(BuildConfig.APPLICATION_ID,

PackageManager.GET_SIGNATURES);

String signValidString = getSignValidString(packageInfo.signatures[0].toByteArray());

Log.e("获取应用签名", BuildConfig.APPLICATION_ID + ":" + signValidString);

} catch (Exception e) {

Log.e("获取应用签名", "异常:" + e);

}

其 引用 的方法

private String getSignValidString(byte[] paramArrayOfByte) throws NoSuchAlgorithmException {

MessageDigest localMessageDigest = MessageDigest.getInstance("MD5");

localMessageDigest.update(paramArrayOfByte);

return toHexString(localMessageDigest.digest());

}

public String toHexString(byte[] paramArrayOfByte) {

if (paramArrayOfByte == null) {

return null;

}

StringBuilder localStringBuilder = new StringBuilder(2 * paramArrayOfByte.length);

for (int i = 0; ; i++) {

if (i >= paramArrayOfByte.length) {

return localStringBuilder.toString();

}

String str = Integer.toString(0xFF & paramArrayOfByte[i], 16);

if (str.length() == 1) {

str = "0" + str;

}

localStringBuilder.append(str);

}

}