获取debug.keystore和SHA1码

获取debug.keystore和SHA1码

在开发百度地图时,需要使用keystore,并为此做出笔记,记录一下debug.keystore的生成,和获取SHA1码

第一步: 运行cmd.exe 进入DOS命令界面

第二步: C盘用户目录下找到.android文件夹,并进入该文件夹(C:\Users\Administrator.android)

第三步: 运行keytool -list -v -keystore debug.keystore

第四步: 输入口令:android

第五步: 界面显示

	*******************************************
	*******************************************
	输入密钥库口令:
	密钥库类型: JKS
	密钥库提供方: SUN

	您的密钥库包含 1 个条目

	别名: androiddebugkey
	创建日期: 2018-11-6
	条目类型: PrivateKeyEntry
	证书链长度: 1
	证书[1]:
	所有者: C=US, O=Android, CN=Android Debug
	发布者: C=US, O=Android, CN=Android Debug
	序列号: 1
	有效期为 Wed Jun 27 15:33:02 CST 2018 至 Fri Jun 19 15:33:02 CST 2048
	证书指纹:
			 MD5:  EF:F7:BD:07:9E:CF:BD:EF:23:A5:D8:69:D5:CF:17:E7
			 SHA1: 7A:07:30:56:8F:63:C3:B8:11:BD:44:EA:F0:9D:49:CC:19:83:7D:58
			 SHA256: 6E:86:69:D7:F9:12:40:DA:85:66:05:78:2B:CD:BC:82:B6:82:07:DE:72:18:1A:BC:2E:EB:EB:AD:3B:CC:43:1D
	签名算法名称: SHA1withRSA
	主体公共密钥算法: 1024 位 RSA 密钥
	版本: 1

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

第六步: 获取相关信息并保存,.android文件夹下会生成一个 debug.keystore 文件,这个就是创建开发模式的签名文件,并拷贝出来使用

注:
1. 开发是获取第五步的重要数据,和所产生的签名文件
在AndroidStudio进行打包签名时用到的数据

  • 密钥密码:android
  • 密钥别名:androiddebugkey
    别名查看方式:我用AS查看的当前签名别名 图片地址
  • 签名文件[debug]:debug.keystore文件

在开发时集成百度地图等第三方,会用到SHA1码

  • SHA1: 7A:07:30:56:8F:63:C3:B8:11:BD:44:EA:F0:9D:49:CC:19:83:7D:58

2. 在创建debug.keystore文件时,会遇到以下问题
① 执行第三步的时候会遇到
keytool 错误: java.lang.Exception: 密钥库文件不存在: debug.keystore

java.lang.Exception: 密钥库文件不存在: debug.keystore
		at sun.security.tools.keytool.Main.doCommands(Main.java:783)
		at sun.security.tools.keytool.Main.run(Main.java:366)
		at sun.security.tools.keytool.Main.main(Main.java:359)

很明显的错误,密钥库文件不存在,就是说.android文件夹下没有密钥库文件debug.keystore
解决方法,从别处拷贝一个debug.keystore文件放到.android文件夹下;或者创建一个新的debug.keystore

②执行第五步后也会出现这样的警告
Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore debug.keystore -destkeystore debug.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
警告就警告,不过我的好奇心还是容不得警告,就运行了建议使用“……”这条命令;
会提示“输入源密钥库口令:”
我输入之前所设置的口令:android,并按下回车键
会提示

	*******************************************
	*******************************************			
	已成功导入别名 androiddebugkey 的条目。
	已完成导入命令: 1 个条目成功导入, 0 个条目失败或取消
	
	Warning:
	已将 "debug.keystore" 迁移到 Non JKS/JCEKS。将 JKS 密钥库作为 "debug.keystore.old" 进行了备份。
*******************************************
*******************************************	

下次再运行keytool -list -v -keystore debug.keystore这条命令就不会有什么警告了

关于jks签名库的操作

查看jks签名库里的签名信息:
keytool -v -list -keystore keystore.jks

更改别名:
keytool -changealias -keystore my.jks -alias myalias -destalias otheralias

删除别名:
keytool -delete -alias myalias -keystore my.jks -storepass jkspassword

查看.apk包里的签名详细:
jarsigner -verify -verbose -certs app-release.apk

通过命令生成密钥库和别名
keytool -genkey -alias myalias -keyalg RSA -keystore my.jks -keysize 2048 -validity 9125 -dname "CN=FirstAndLastName, OU=OrganizationalUnit, O=Organization, L=CityOrLocality, ST=StateOrProvince, C=CountryCode, EMAILADDRESS=email@gmail.com"
----注:-keyalg:加密算法   -keysize:加密位数   -validity:有效期(天) -dname:证书详细信息

导出证书:
keytool -export -alias myalias -keystore my.jks -file myalias.crt -storepass jkspassword

打印证书信息:
keytool -printcert -file myalias.crt

将证书导入到密钥库并生成别名
keytool -import -alias myotheralias -file myalias.crt -keystore my1.jks -storepass jkspassword

修改别名里的信息,注MD5的值也会同时被修改
keytool -selfcert -alias myalias -keypass aliaspassword -keystore my.jks -storepass jkspassword -dname "CN=FirstAndLastName1, OU=OrganizationalUnit1, O=Organization1, L=CityOrLocality1, ST=StateOrProvince1, C=CountryCode1, EMAILADDRESS=email1@gmail.com" 
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值