1壶谒、獲取公鑰
利用簽名證書汗菜,使用命令獲取certificate.cer
keytool -export -alias 證書別名 -file certificate.cer -keystore xxx.keystore或xxx.jks
windows直接雙擊文件陨界,點(diǎn)開查看
2腮敌、獲取md5
(1)使用命令keytool -list -v -keystore XXX.jks
有些證書通過此命令沒有md5值只有sha值糜工,我就是
(2)使用命令 apksigner.bat verify --print-certs XXX.apk
本來想確認(rèn)下簽名版本捌木,無意間發(fā)現(xiàn)的
(3)也可以直接使用代碼獲取
public static StringgetSignatureMD5(Context context) {
try {
PackageInfo packageInfo = context.getPackageManager().getPackageInfo(
context.getPackageName(), PackageManager.GET_SIGNATURES);
android.content.pm.Signature[] signatures = packageInfo.signatures;
// 取第一個(gè)簽名的 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);
// 將字節(jié)數(shù)組轉(zhuǎn)換為十六進(jìn)制字符串
? ? ? ? ? ? StringBuilder sb =new StringBuilder();
for (byte b : digest) {
sb.append(String.format("%02x", b));
}
return sb.toString();
}
}catch (Exception e) {
e.printStackTrace();
}
return null;
}