keytool

因为现在做海外推广,用到了谷歌分析和firebase,我就在优达学城学习这个工具。

需要把把firebase添加到我的app的过程中,需要产生sha1.我就按文档操作报错

 

 

 

 

 

1.java.lang.Exception:密钥库文件不存在:密钥库

获取得到SHA1值,用cmd(或android studio的终端工具)命令获取SHA1值,出现如图异常:

 

 

看看系统用户下.android文件夹debug.keystore文件是否丢失,如果没有debug.keystore文件,看下文:

2.具体解决步骤

2.1生成证书

在终端工具输入或窗口运行窗口输入(窗口键+ R输入CMD):

参数说明:

  • -genk·eypair:生成一对非对称密钥;
  • -alias:指定密钥对的别名,该别名是公开的;
  • -keyalg:指定加密算法,本例中的采用通用的RAS加密算法;
  • -keystore:密钥库的路径及名称,不指定的话,默认在操作系统的用户目录下生成一个".keystore"的文件
 keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 10000

注意:

  1.密钥库的密码至少必须6个字符,可以是纯数字或者字母或者数字和字母的组合等等

  2."名字与姓氏"应该是输入域名,而不是我们的个人姓名,其他的可以不填

填写注册信息,注意要求设置密码,密码请记录下来以便后续获取SHA1使用(注册内容可以随意填写)

 

 

2.2验证debug.keystore是否生成

 

 再次填写注册信息,出现如图异常:

 2.3查看证书

 keytool -list -keystore  debug.keystore

 

 

 

 2.4管理密钥和证书工具

C:\Users\WQBin> keytool -help
密钥和证书管理工具

命令:

 -certreq            生成证书请求
 -changealias        更改条目的别名
 -delete             删除条目
 -exportcert         导出证书
 -genkeypair         生成密钥对
 -genseckey          生成密钥
 -gencert            根据证书请求生成证书
 -importcert         导入证书或证书链
 -importpass         导入口令
 -importkeystore     从其他密钥库导入一个或所有条目
 -keypasswd          更改条目的密钥口令
 -list               列出密钥库中的条目
 -printcert          打印证书内容
 -printcertreq       打印证书请求的内容
 -printcrl           打印 CRL 文件的内容
 -storepasswd        更改密钥库的存储口令

使用 "keytool -command_name -help" 获取 command_name 的用法

2.5导出到证书文件

范例:将名为 debug.keystore的证书库中别名为 androiddebugkey的证书条目导出到证书文件test.crt中

Cmd代码

运行结果:在操作系统的用户目录(gacl)下生成了一个"test.crt"的文件,如下图所示:

 

 

 

 

 

2.7、导入证书

范例:将证书文件test.crt导入到名为test_cacerts的证书库中

Cmd代码:

keytool -export -alias androiddebugkey  -file test.crt -keystore debug.keystore

 

 

2.8、查看证书信息

范例:查看证书文件test.crt的信息

Cmd代码:

 

posted @ 2020-06-04 16:11  wqbin  阅读(338)  评论(0编辑  收藏  举报