一、前言

这篇文章是本人对于证书、签名、密钥的理解,可能有错误的地方,望指正。

这篇文章回答了什么是.jks(JAVA key store)?Alias(别名)又是什么?jks和别名的password(密码)又有什么不为人知的秘密?

二、key(密钥)相关的基本概念

通常所说的密钥加密是采用的是非对称加密方式。即,每个key都含有一对密钥和一个hash值(指纹),一对密钥也就是公钥和私钥。公钥可以分发出去,私钥自己保密。用公钥加密的内容,只能用私钥解出;用私钥加密的内容,只能用公钥解出。

三、解决开发中的相关问题

1、什么是.jks文件?

.jks文件是密钥库格式的文件,文件中保存了一个密钥库,密钥库中又保存了多个密钥。

每个密钥中包含了两条数据:

(1)密钥实体(Key entity)— 密钥(secret key)又或者是私钥和配对公钥(采用非对称加密)

(2)可信任的证书实体(trusted certificate entries)— 只包含公钥

因此,我们平时说的证书也就是公钥,密钥也就是私钥,这里翻译可能有点乱,看了好多资料也没个准确的定义,重点是意会。

2、Alias(别名)又是什么?

别名则是这条密钥的名字,用来人为地区别分不同的密钥,密钥是字符,也不太好背。

3、jks和别名的password(密码)又有什么不为人知的秘密?

jks的密码就是密钥库的密码,拥有这个密码就可以得到这个密钥库里所有密钥的公钥。别名的密码就是私钥的密码,拥有这个密码就可以得到私钥的密码,一般这个密码是开发者自己保留。

4、APK的签名机制有什么作用?

(1)APK的升级安装:APK如果使用一个key,发布时另一个key的相同的APK文件将无法安装或覆盖老的版本,这样可以防止你已安装的应用被恶意的第三方覆盖或替换掉。

(2)功能和数据共享:Android提供了基于签名的权限机制,一个APK可以向另一个以相同证书签名的APK开放自己的功能和实现数据共享。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐