要构建 apk,我们需要一个证书,该证书包含公钥和一些元数据(例如公司,...)。证书本身是通过应用程序签名 key 生成的。
应用程序签名 key 与 keystore 实体完全相同还是? (我现在的想法)
<小时/>一个 keystore 实体到底包含什么?
keystore 实体是否在一个实体内存储“私钥+公钥+元数据”? 或者“私钥+元数据(单独)”并通过私钥生成公钥? 或者只有一个“私钥”,其中写入元数据并通过私钥生成公钥?
还是其他方式?我真的很想了解有关 keystore 实体/应用程序签名 key 的更多基于技术的信息,但找不到更详细的(基于技术的)存储和生成描述。
谢谢
谷歌:
"A keystore is a binary file that contains one or more private keys“
"Generate Signed APK […], select a keystore, a private key, and enter the passwords for both.“ https://developer.android.com/studio/publish/app-signing.html
最佳答案
keystore 是 key 和证书的容器。 Android keystore 包含应用签名 key 和匹配的证书。
随机生成公钥和私钥对。公钥与一些附加属性(例如序列号或通用名称)一起嵌入到 X509 证书中。证书使用私钥签名,以确保来源和完整性。请参阅Certificate enrollment process
最后可以将私钥和证书导入到 keystore 文件中:JKS、BKS 或 PKCS#12
该apk使用 keystore 中包含的私钥进行数字签名,并且还包含证书,因此您可以验证签名者的身份和包的完整性
关于java - 代表 Android 应用程序签名 key 、 keystore 实体以及该 key 中到底存储了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45675873/