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设置在高德地图控制台的应用即可。