首页 > 建站教程 > APP开发,混合APP >  android生成key.jks秘钥证书和通过key.jks查询md5、SHA1、SHA256正文

android生成key.jks秘钥证书和通过key.jks查询md5、SHA1、SHA256

    我爱模板网在《flutter 在vscode Terminal打包安卓apk》中略微提到了生成安卓秘钥的方法,但不详细。
    今天又遇到了这个问题,折腾出来了,这里再详细记录下android生成key.jks秘钥证书和通过key.jks查询md5、SHA1、SHA256的方法:

安装keytool,有两种方法:安装JRE环境或者安装Android Studio

1、安装JRE环境
    可从Oracle官方下载jre安装包:https://www.oracle.com/technetwork/java/javase/downloads/index.html
    下面以安装目录为“C:\Program Files\Java\jre1.8.0_201”为例,实际操作时请修改为自己安装目录
    建议将JRE安装路径添加到系统环境变量,已配置可跳过此章节
    打开命令行(cmd),输入以下命令:
d:
set PATH=%PATH%;"C:\Program Files\Java\jre1.8.0_201\bin"
    第一行:切换工作目录到D:路径
    第二行:将jre命令添加到临时环境变量中

    使用keytool -genkey命令生成证书:
keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore
    • testalias是证书别名,可修改为自己想设置的字符,建议使用英文字母和数字
    • test.keystore是证书文件名称,可修改为自己想设置的文件名称

    如果提示keytool 不是内部命令;那就是上一步环境变量没设置成功
    回车后会提示:
Enter keystore password:  //输入证书文件密码,输入完成回车  
Re-enter new password:   //再次输入证书文件密码,输入完成回车  
//输入名字和姓氏,输入完成回车  
[Unknown]:  //输入组织单位名称,输入完成回车  
[no]:  //确认上面输入的内容是否正确,输入y,回车  
Enter key password for <testalias>  
(RETURN if same as keystore password):  
    确认证书密码与证书文件密码一样(HBuilder|HBuilderX要求这两个密码一致),直接回车就可以
    以上命令运行完成后就会生成证书,路径为“D:\test.keystore”。

    查看证书信息

    可以使用以下命令查看:
keytool -list -v -keystore test.keystore  
//输入密码,回车
    其中证书指纹信息(Certificate fingerprints):
        • MD5   证书的MD5指纹信息(安全码MD5)
        • SHA1   证书的SHA1指纹信息(安全码SHA1)
        • SHA256  证书的SHA256指纹信息(安全码SHA245)

2、安装Android Studio,我爱模板网的Android studio安装在 D:\Program Files\Android\Android Studio\

    CD到:D:\Program Files\Android\Android Studio\jre\bin

    执行下面的命令:
keytool -genkey -v -keystore D:/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
    其中:D:/key.jks为证书的路径,key.jks是证书文件名。-alias后面的key为证书别名
    回车,输入对应的内容(秘钥库口令即证书私钥密码):
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
  [Unknown]:
您的组织单位名称是什么?
  [Unknown]:
您的组织名称是什么?
  [Unknown]:
您所在的城市或区域名称是什么?
  [Unknown]:
您所在的省/市/自治区名称是什么?
  [Unknown]:
该单位的双字母国家/地区代码是什么?
  [Unknown]:
CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown是否正确?
  [否]:y

正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 10,000 天):
         CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
输入 <key> 的密钥口令
        (如果和密钥库口令相同, 按回车):
再次输入新口令:
[正在存储D:/key.jks]
    这样证书就生成好了。如果要查看SHA1、SHA256,则在当前目录继续输入:
keytool -list -v -keystore D:/key.jks

    输入对应的口令继续:
输入密钥库口令:
密钥库类型: jks
密钥库提供方: SUN

您的密钥库包含 1 个条目

别名: key
创建日期: 2020-7-9
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
发布者: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
序列号: 19001f1e
有效期为 Thu Jul 09 16:39:13 CST 2020 至 Mon Nov 25 16:39:13 CST 2047
证书指纹:
         MD5:  57:8E:8D:C1:21:6E:F1:61:AB:34:1C:D6:D6:03:E5:72
         SHA1: C1:76:E2:7B:73:27:5F:72:39:9A:A2:4A:DC:C1:00:BC:49:18:85:00
         SHA256: 4D:51:9B:49:28:2A:DC:21:BA:83:67:CC:08:23:9B:90:E2:DD:D0:EE:09:E1:67:6F:C6:25:01:D7:86:4D:36:06
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 92 8D 1A 48 1A 0F 75 C0   6B 33 D2 FF C9 CE BA 71  ...H..u.k3.....q
0010: 9D BB EF 40                                        ...@
]
]

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