java - 代表 Android 应用程序签名 key 、 keystore 实体以及该 key 中到底存储了什么?

标签 java android android-studio certificate digital-signature

要构建 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/

相关文章:

java - Netty 自动设置内容长度

android - 在断开连接的设备上通过 XMPP 丢失消息

java - 如何在日历 View 中获取 google calendar api 中的数据?

java - 使用 Java 识别图形中的线条

Java 抽象类或静态实用程序类设计选择

java - jsp中登录后显示用户名

java - 通过同一个套接字发送和接收

android - 在 Android Studio 中失败 [INSTALL_FAILED_OLDER_SDK]?

java - 在 Android Studio 中制作所需的 EditText 字段

AndroidStudio aws django : HttpUrlConnection not working