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;
}