Android获取apk签名md5和公钥

1、获取公钥

利用签名证书,使用命令获取certificate.cer

keytool -export -alias 证书别名 -file certificate.cer -keystore xxx.keystore或xxx.jks

windows直接双击文件,点开查看

2、获取md5

(1)使用命令keytool -list -v -keystore XXX.jks

有些证书通过此命令没有md5值只有sha值,我就是

(2)使用命令 apksigner.bat verify --print-certs XXX.apk

本来想确认下签名版本,无意间发现的

(3)也可以直接使用代码获取

public static StringgetSignatureMD5(Context context) {

try {

PackageInfo packageInfo = context.getPackageManager().getPackageInfo(

context.getPackageName(), PackageManager.GET_SIGNATURES);

android.content.pm.Signature[] signatures = packageInfo.signatures;

// 取第一个签名的 MD5 值

        if (signatures.length >0) {

android.content.pm.Signature signature = signatures[0];

byte[] signatureBytes = signature.toByteArray();

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

byte[] digest = md.digest(signatureBytes);

// 将字节数组转换为十六进制字符串

            StringBuilder sb =new StringBuilder();

for (byte b : digest) {

sb.append(String.format("%02x", b));

}

return sb.toString();

}

}catch (Exception e) {

e.printStackTrace();

}

return null;

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容