Google Play Facebook 分享 獲取簽名的秘鑰散列


兩種方式:一個通過電腦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

\color{#ff7d00}{注:在生成的文件里都要看一看否生成成功。(沒有報錯就是成功)}
下方是出現(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位的秘鑰散列。

密匙散列 cmd 操作.png

密匙散列結(jié)果.png

方式二:

轉(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é)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。