兩種方式:一個通過電腦jdk、openssl獲取,一個通過安卓代碼獲取。
方式一:
轉(zhuǎn)自:http://www.manongjc.com/detail/14-nhmzueqxzzcsumt.html
1.先下載安裝OpenSSL工具。
2.將你的 .keystore文件復(fù)制到JAVA JDK 文件夾的bin目錄里面(C:\Program Files (x86)\Java\jdk1.8.0_144\bin)
win+R打開命令控制器,cd到JANA JDK的bin文件夾下
執(zhí)行這個命令
keytool -exportcert -alias androiddebugkey -keystore debug.keystore > c:\openssl\bin\debug.txt
其中androiddebugkey是你 .keystore文件的別名,debug是你 .keystore文件的名字。c:\openssl\bin是openssl安裝路徑。所以命令要這么寫(網(wǎng)上好多說debug.keystore找不到的...):
keytool -exportcert -alias 秘鑰別名 -keystore 秘鑰名字.keystore > c:\openssl\bin\秘鑰名字.txt
下方是出現(xiàn)在debug.txt文件里的錯誤解決方式:
keytool 錯誤: java.io.IOException: Keystore was tampered with, or password was incorrect一般情況下是你密碼錯啦。
keytool 錯誤: java.lang.Exception: 別名 <androiddebugkey> 不存在這種是你別名錯啦。
3.然后路徑cd到openssl文件夾下的bin目錄
執(zhí)行
opensslsha1 -binarydebug.txt >debug_sha.txt
會生成debug_sha.txt文件
再執(zhí)行:
openssl base64 -in debug_sha.txt >debug_base64.txt
生成的debug_base64.txt里就是你需要的28位的秘鑰散列。
方式二:
轉(zhuǎn)載自:http://www.lxweimin.com/p/cfe54d50e7f2
把下面代碼寫在要打的包里,運行之后,在log里可以看到key是多少。
或者打個測試包,一定要用正式包的簽名打測試包(包名一不一樣無所謂),運行,看log有結(jié)果。
void getFaceBookKey() {
try {
int i = 0;
PackageInfo info = getPackageManager().getPackageInfo( getPackageName(), PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
i++;
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String KeyHash = Base64.encodeToString(md.digest(), Base64.DEFAULT);
//KeyHash 就是你要的,不用改任何代碼 復(fù)制粘貼 ;
Log.e("tyl","KeyHash="+KeyHash);
}
}
catch (PackageManager.NameNotFoundException e) {
}
catch (NoSuchAlgorithmException e) {
}
}
復(fù)制之后需要自動引用代碼才會消除錯誤,Androidstudio里alt+enter就自動引用了。
完結(jié)。