Android 獲取開發&測試 SHA1值


以前都是直接安裝一個開發者助手獲取的,但是呢,開發者助手也有bug啊,應用寶下載安裝,在我的紅米手機上發現打不開,於是我又去酷安網下載了一個,可以打開了,但是有問題,沒法獲取到完整的root權限,檢測不准確,當前應用根本看不到東西,於是只能另想辦法了,老套路就是百度,然后照着搞,發現很多都是直接 keytool 命令,但是我這里報 'keytool' 不是內部或外部命令 也不是可運行的程序,這個不是什么大問題,網上很多解決方案,但是本人比較懶,太麻煩的操作一般懶得做,但是又沒辦法,所以搜集了一下各路解決方案,總結了一下快速直接且方便的方案,記錄下來,以后可以直接用

首先獲取測試版的SHA1值,就很簡單,一般最簡單的就是在AndroidStudio上,右邊菜單,點擊,點擊signingReport就行了,如下圖

 

as直接就給你打印出來了,很方便,但是如果要獲取簽名的SHA1值呢,看到上面的路徑了嗎,其實就是用keytool命令然后附帶上我們的jks就行了,這個方法測試正式都通用,有的可能直接敲命令就行了,但是肯定很多人也跟我一樣,提示不是內部或外部命令,有的時候很久沒搞過就會忘記,雖然百度一下的事,但是也浪費自己的時間,所以還是整理一下好,如下圖

 

進入到jdk路徑里,在使用命令就行了,測試的jks路徑就是 C:\Users\LiuZhen\.android\debug.keystore

還有一個辦法就是用代碼去獲取了,不過個人還是覺得一步到位的好,下面是獲取代碼,在高德那復制的

public String sHA1(){
        try {
            PackageInfo info = getPackageManager().getPackageInfo(
                    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);
                hexString.append(":");
            }
            String result = hexString.toString();
            return result.substring(0, result.length()-1);
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
    }

 不過有一部分項目是配置的包名,配置文件中切換測試正式,所以此時這些方法可能並不能保證是正式還是測試,所以我一般為了准確性,都是用命令去獲取的

直接進入到 cd "C:\Program Files\Android\Android Studio\jre\bin" 目錄,然后 keytool -list -v -keystore c:/xxx.jks 也就是你的正式簽名和測試簽名,這樣就可以保證不會弄混

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM