Android-高德地图获取发布版+调试版的SHA1、

2023-01-29  本文已影响0人  晴天ccc

前言

应用中引入高德地图SDK,使用到部分功能,在打包测试过程中遇到鉴权失败,就是SHA1的问题。这边记录一下。

控制台应用设置

在高德地图开放平台-控制台-应用中

1、调试版安全码SHA1获取方式:

调用方式

    String SHA1Key = getGaoDeMapDeBugSHA1(mContext);
    CZLog.e("高德地图调试版安全码SHA1:" + SHA1Key);

获取方法

    // 获取高德地图调试版安全码SHA1
    public static String getGaoDeMapDeBugSHA1(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 (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
    }

在应用任何一个类中复制上述代码进去,通过Log日志即可得到相关SHA1信息。

发布版安全码SHA1获取方式:

我们在打包的时候会有签名文件,我这里是AppRelease.jks

打开终端cd到该文件目录下(在终端输入cd,然后将该文件AppRelease.jks拖动到终端,即可自动获取路径)

Last login: Mon Jan 30 14:42:47 on ttys001
mac@Macmini ~ % cd /Users/mac/Desktop/AppRelease.jks 

执行

keytool -list -v -keystore xxxx.jks               (注:xxxx.jks 是你自己的签名文件名称)

我这里执行的是:

keytool -list -v -keystore AppRelease.jks

然后会提示让你输入密码,这里的密匙库口令就是你的签名文件的密码,输入密码后回车就可以得到release版的SHA1安全码。

Last login: Mon Jan 30 14:42:47 on ttys001
mac@Macmini ~ % cd /Users/mac/Desktop/AppRelease.jks 
mac@Macmini Desktop % keytool -list -v -keystore AppRelease.jks
输入密钥库口令:  
密钥库类型: PKCS12
密钥库提供方: SUN

您的密钥库包含 1 个条目

别名: MOSS
创建日期: 2022年12月16日
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=MOSS, OU=MOSS, O=MOSS, L=北京, ST=北京, C=CN
发布者: CN=MOSS, OU=MOSS, O=MOSS, L=北京, ST=北京, C=CN
序列号: 1ee6b362
生效时间: Fri Dec 16 10:49:16 CST 2022, 失效时间: Tue Dec 10 10:49:16 CST 2047
证书指纹:
     SHA1: 91:2G:14:41:DC:5B:CF:64:42:CB:09:34:5B:DD:AC:E3:DB:9D:53:83
     SHA256: 28:6F:C7:57:7S:66:FH:9D:VC:FC:10:ED:74:0A:A7:DE:98:8C:B8:3C:D2:94:D0:D8:ED:81:82:AE:64:E0:90:78
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 1C 34 0F AC 35 33 4E BE   AE 04 5A C7 05 00 D8 24  .4..53N...Z....$
0010: 49 C0 75 00  I.u.]


*******************************************
*******************************************

最后把得到的发布版SHA1设置在高德地图控制台的应用即可。

上一篇 下一篇

猜你喜欢

热点阅读