赞
踩
使用高德地图开发平台提供的方法获取,生成的key在keytool 所在目录。
// 使用代码生成打印出来
java
- public static 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 (PackageManager.NameNotFoundException e) {
- e.printStackTrace();
- } catch (NoSuchAlgorithmException e) {
- e.printStackTrace();
- }
- return "";
- }

kotlin
- fun sHA1(context: Context): String? {
- try {
- val info = context.packageManager.getPackageInfo(
- context.packageName, PackageManager.GET_SIGNATURES
- )
- val cert = info.signatures[0].toByteArray()
- val md = MessageDigest.getInstance("SHA1")
- val publicKey = md.digest(cert)
- val hexString = StringBuffer()
- for (i in publicKey.indices) {
- val appendString = Integer.toHexString(
- 0xFF and publicKey[i]
- .toInt()
- )
- .toUpperCase(Locale.US)
- if (appendString.length == 1) hexString.append("0")
- hexString.append(appendString)
- hexString.append(":")
- }
- val result = hexString.toString()
- return result.substring(0, result.length - 1)
- } catch (e: PackageManager.NameNotFoundException) {
- e.printStackTrace()
- } catch (e: NoSuchAlgorithmException) {
- e.printStackTrace()
- }
- return ""
- }

获取调试版的 SHA1。debug 的 SHA1 是公用的,本机上创建的所有APP都可以使用,源代码迁移到其他机器,编译运行后可能出错,要在本机生成后,填写到(高德)开放平台上(调试版本SHA1) 输入密钥库口令:android
- 下面的是一行命令,不要分成两行写
- C:\Program Files\Java\jdk1.8.0_172\bin>keytool -list -v -keystore C:\Users\Administrator.BF-20180423DGJA\.android\debug.keystore
-
- 输入密钥库口令:
- 密钥库类型: jks
- 密钥库提供方: SUN
-
- 您的密钥库包含 1 个条目
-
- 别名: androiddebugkey
- 创建日期: 2018-5-7
- 条目类型: PrivateKeyEntry
- 证书链长度: 1
- 证书[1]:
- 所有者: C=US, O=Android, CN=Android Debug
- 发布者: C=US, O=Android, CN=Android Debug
- 序列号: 1
- 有效期为 Mon May 07 16:54:35 CST 2018 至 Wed Apr 29 16:54:35 CST 2048
- 证书指纹:
- MD5: FF:09:10:D7:69:F5:B6:B9:95:D9:1B:7C:9A:76:CC:65
- SHA1: EC:2E:A2:15:9E:1C:16:07:DD:EF:00:34:BE:CC:DD:98:CF:EB:17:5A
- SHA256: E8:36:4B:05:B9:FA:7C:1F:FF:A9:C9:16:D2:96:1A:53:5A:2D:BB:A4:DB:8B:FD:DC:B0:A6:6E:8E:3E:13:08:4A
- 签名算法名称: SHA1withRSA
- 主体公共密钥算法: 1024 位 RSA 密钥
- 版本: 1
-
-
- *******************************************
- *******************************************
-
-
-
- Warning:
- JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore C:\Users\Administrator.BF-20180423DGJA\.android\debug.keystore -destkeystore C:\Users\Administrator.BF-20180423DGJA\.android\debug.keystore -deststoretype
- pkcs12" 迁移到行业标准格式 PKCS12。
-
- C:\Program Files\Java\jdk1.8.0_172\bin>

生成自定义key的操作命令 最后生成的 keystore 在 keytool 所在目录
如果出现下面错误,请右键cmd以管理员身份运行
keytool 错误: java.io.FileNotFoundException: myapplication4.keystore (拒绝访问。)
- C:\Users\Administrator.BF-20180423DGJA>keytool -genkey -alias mykeystore.keystor
- e -keyalg RSA -validity 20000 -keystore mykeystore.keystore
- 输入密钥库口令:
- 再次输入新口令:
- 您的名字与姓氏是什么?
- [Unknown]: mykeystore
- 您的组织单位名称是什么?
- [Unknown]: mykeystore
- 您的组织名称是什么?
- [Unknown]: mykeystore
- 您所在的城市或区域名称是什么?
- [Unknown]: shanghai
- 您所在的省/市/自治区名称是什么?
- [Unknown]: shanghai
- 该单位的双字母国家/地区代码是什么?
- [Unknown]: cn
- CN=mykeystore, OU=mykeystore, O=mykeystore, L=shanghai, ST=shanghai, C=cn是否正确?
- [否]: y
-
- 输入 <mykeystore.keystore> 的密钥口令
- (如果和密钥库口令相同, 按回车):
-
- Warning:
- JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore mykeystore
- a.keystore -destkeystore mykeystore.keystore -deststoretype pkcs12" 迁移到行业标
- 准格式 PKCS12。
-
- C:\Users\Administrator.BF-20180423DGJA>

发布版本的 SHA1
- C:\Program Files\Java\jdk1.8.0_172\bin>keytool -list -v -keystore F:\project\mykey\mykeystore.keystore
- 输入密钥库口令:
- 密钥库类型: jks
- 密钥库提供方: SUN
-
- 您的密钥库包含 1 个条目
-
- 别名: mykeystore.keystore
- 创建日期: 2018-6-22
- 条目类型: PrivateKeyEntry
- 证书链长度: 1
- 证书[1]:
- 所有者: CN=mykeystore, OU=mykeystore, O=mykeystore, L=shanghai, ST=shanghai, C=cn
- 发布者: CN=mykeystore, OU=mykeystore, O=mykeystore, L=shanghai, ST=shanghai, C=cn
- 序列号: ce42059
- 有效期为 Fri Jun 22 16:12:43 CST 2018 至 Sat Mar 25 16:12:43 CST 2073
- 证书指纹:
- MD5: 63:B9:E1:3F:31:DB:AC:AE:BF:E8:4E:79:6C:E0:45:E2
- SHA1: 81:A8:1C:06:9F:B0:2A:A1:9C:F5:CE:FC:6B:EA:7F:A5:18:B4:1E:C4
- SHA256: 8E:CA:56:2A:90:0E:33:D1:35:6D:F3:0B:50:6A:7B:6B:18:EA:DF:C0:A2:25:6C:B3:62:16:B7:65:AB:A2:31:62
- 签名算法名称: SHA256withRSA
- 主体公共密钥算法: 2048 位 RSA 密钥
- 版本: 3
-
- 扩展:
-
- #1: ObjectId: 2.5.29.14 Criticality=false
- SubjectKeyIdentifier [
- KeyIdentifier [
- 0000: 0C E4 9F 2C A4 AA CD 6B 5F 0F 8A 74 93 AA B2 AA ...,...k_..t....
- 0010: 93 2D FF 83 .-..
- ]
- ]
-
-
-
- *******************************************
- *******************************************
-
-
-
- Warning:
- JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore F:\project\mykey\mykeystore.keystore -destkeystore F:\project\mykey\mykeystore.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12
- 。
-
- C:\Program Files\Java\jdk1.8.0_172\bin>

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。