【问题标题】:Represents an android app signing key a keystore entity and what is stored inside that key exactly?代表一个 android 应用程序签名密钥一个密钥库实体,以及该密钥中究竟存储了什么?
【发布时间】:2018-01-22 08:56:00
【问题描述】:

要构建一个apk,我们需要一个证书,这个证书包含公钥和一些元数据(比如公司,...)。证书本身是通过应用签名密钥生成的。

应用签名密钥与密钥库实体完全相同,还是? (我现在的想法)


一个密钥库实体究竟包含什么?

密钥库实体是否将“私钥 + 公钥 + 元数据”存储在一个实体中? 或“私钥+元数据(单独)”并通过私钥生成公钥? 还是只有一个“私钥”,其中写入了元数据并通过私钥生成公钥?

或者其他?我真的很想了解有关密钥库实体/应用签名密钥的更多基于技术的信息,但找不到更详细(基于技术)的存储和生成描述。

谢谢

谷歌:

“密钥库是包含一个或多个私钥的二进制文件”
“生成签名的 APK […],选择一个密钥库、一个私钥,然后输入两者的密码。” https://developer.android.com/studio/publish/app-signing.html

【问题讨论】:

    标签: java android android-studio certificate digital-signature


    【解决方案1】:

    keystore 是密钥和证书的容器。 Android Keystore 包含应用签名密钥和匹配的证书。

    一个加密密钥对,公钥和私钥是随机生成的。公钥与一些附加属性(例如序列号或公用名)一起嵌入在 X509 证书中。证书使用私钥签名,以确保来源和完整性。见Certificate enrollment process

    最后可以将私钥和证书导入到密钥库文件中:JKS、BKS 或 PKCS#12

    使用密钥库中包含的私钥对apk进行数字签名,证书也包含在内,因此您可以验证签名者的身份和包的完整性

    【讨论】:

    • 谢谢@pedrofb!还有一个问题 - 私钥是应用签名密钥吗?
    • 是的,是一样的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-19
    • 1970-01-01
    • 1970-01-01
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多