獲取SHA1的幾種方式
1、通過Eclipse編譯器獲取SHA1
使用 adt 22 以上版本,可以在 eclipse 中直接檢視。
Windows:依次在 eclipse 中開啟 Window -> Preferances -> Android -> Build。
Mac:依次在 eclipse 中開啟 Eclipse/ADT->Preferances -> Android -> Build。
在彈出的 Build 對話方塊中 “SHA1 fingerprint” 中的值即為 Android 簽名證書的 Sha1 值
2、通過Android Studio編譯器獲取SHA1
第一步、開啟Android Studio的Terminal工具
第二步、輸入命令:keytool -v -list -keystore keystore檔案路徑
第三步、輸入Keystore密碼
3、使用 keytool(jdk自帶工具)獲取SHA1
第一步、執行進入控制檯
第二步、在彈出的控制檯視窗中輸入 cd .android 定位到 .android 資料夾
第三步、繼續在控制檯輸入命令
debug.keystore:命令為:keytool -list -v -keystore debug.keystore
自定義的 keystore:命令為:keytool -list -v -keystore apk的keystore
提示輸入金鑰庫密碼,編譯器提供的debug keystore預設密碼是 android,自定義簽名檔案的密碼請自行填寫。輸入金鑰後回車(如果沒設定密碼,可直接回車),此時可在控制檯顯示的資訊中獲取 SHA1 值
4、程式碼中提取
publicstatic String sHA1(Context context) {
try {
PackageInfo info = context.getPackageManager().getPackageInfo(
context.getPackageName(), PackageManager.GET_SIGNATURES);
byte[] cert = info.signatures[0].toByteArray();
MessageDigest md = MessageDigest.getInstance("SHA1");
byte[] publicKey = md.digest(cert);
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < publicKey.length; i++) {
String appendString = Integer.toHexString(0xFF & publicKey[i])
.toUpperCase(Locale.US);
if (appendString.length() == 1)
hexString.append("0");
hexString.append(appendString);
}
return hexString.toString();
} catch (NameNotFoundException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return null;
}
5、apk中讀取:
第一步、將apk改為zip字尾檔案,並解壓;
第二步、進入META-INF路徑,執行keytool -printcert -file META-INF/CERT.RSA
---------------------
作者:qq_33704095
來源:CSDN
原文:https://blog.csdn.net/qq_33704095/article/details/80861146
版權宣告:本文為博主原創文章,轉載請附上博文連結!