抑郁症健康,内容丰富有趣,生活中的好帮手!
抑郁症健康 > ANDROID STUDIO 获取调试版与发布版SHA1 生成自定义 KEYSTORE

ANDROID STUDIO 获取调试版与发布版SHA1 生成自定义 KEYSTORE

时间:2021-02-27 19:56:57

相关推荐

使用高德地图开发平台提供的方法获取,生成的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-0423DGJA\.android\debug.keystore输入密钥库口令:密钥库类型: jks密钥库提供方: SUN您的密钥库包含 1 个条目别名: androiddebugkey创建日期: -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 至 Wed Apr 29 16:54:35 CST 2048证书指纹:MD5: FF:09:10:D7:69:F5:B6:B9:95:D9:1B:7C:9A:76:CC:65SHA1: EC:2E:A2:15:9E:1C:16:07:DD:EF:00:34:BE:CC:DD:98:CF:EB:17:5ASHA256: 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-0423DGJA\.android\debug.keystore -destkeystore C:\Users\Administrator.BF-0423DGJA\.android\debug.keystore -deststoretypepkcs12" 迁移到行业标准格式 PKCS12。C:\Program Files\Java\jdk1.8.0_172\bin>

生成自定义key的操作命令最后生成的 keystore 在 keytool 所在目录

如果出现下面错误,请右键cmd以管理员身份运行

keytool 错误: java.io.FileNotFoundException: myapplication4.keystore (拒绝访问。)

C:\Users\Administrator.BF-0423DGJA>keytool -genkey -alias mykeystore.keystore -keyalg RSA -validity 20000 -keystore mykeystore.keystore输入密钥库口令:再次输入新口令:您的名字与姓氏是什么?[Unknown]: mykeystore您的组织单位名称是什么?[Unknown]: mykeystore您的组织名称是什么?[Unknown]: mykeystore您所在的城市或区域名称是什么?[Unknown]: shanghai您所在的省/市/自治区名称是什么?[Unknown]: shanghai该单位的双字母国家/地区代码是什么?[Unknown]: cnCN=mykeystore, OU=mykeystore, O=mykeystore, L=shanghai, ST=shanghai, C=cn是否正确?[否]: y输入 <mykeystore.keystore> 的密钥口令(如果和密钥库口令相同, 按回车):Warning:JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore mykeystorea.keystore -destkeystore mykeystore.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。C:\Users\Administrator.BF-0423DGJA>

发布版本的 SHA1

C:\Program Files\Java\jdk1.8.0_172\bin>keytool -list -v -keystore F:\project\mykey\mykeystore.keystore输入密钥库口令:密钥库类型: jks密钥库提供方: SUN您的密钥库包含 1 个条目别名: mykeystore.keystore创建日期: -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 至 Sat Mar 25 16:12:43 CST 2073证书指纹:MD5: 63:B9:E1:3F:31:DB:AC:AE:BF:E8:4E:79:6C:E0:45:E2SHA1: 81:A8:1C:06:9F:B0:2A:A1:9C:F5:CE:FC:6B:EA:7F:A5:18:B4:1E:C4SHA256: 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=falseSubjectKeyIdentifier [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>

如果觉得《ANDROID STUDIO 获取调试版与发布版SHA1 生成自定义 KEYSTORE》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。