查看studio的SHA1值

在集成三方框架申请key的时候都需要填写sha1的值,那么怎么获取sha1的值呢?
在这里我记录两种获取sha1的方法。

第一种 通过命令行

首先找到java JDK的bin目录下面的keytool.exe的全路径,例如我的路径–>E:\studio3.0\jre\bin\keytool.exe;之后在命令行输入cd /d E:\studio3.0\jre\bin\调到bin目录下,
然后输入keytool.exe -list -keystore C:\Users\cb.android\debug.keystore回车。

C:\Users\cb.android\debug.keystore这个是你debug.keystore的路径,一般是在C盘的.android目录下,此时会提示你输入秘钥口令,输入android就行了,输入的时候看不到哦,再按回车就可以看到了sha1的值了。如下图,关键是要找两个路径,一个是jdk的bin路径和debug.keystore的路径。自己安装的时候放哪了就去哪找。

这里写图片描述

第二种直接通过代码获取sha1的值。

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

不解释直接拿去用,调用方法,把结果打印出来就行。
这两种方式都可以获取sha1的值,如果觉得我说的不好可以去看高德官方的讲解高德

猜你喜欢

转载自blog.csdn.net/caobin_study/article/details/79031084