android - apk文件中的签名和证书有什么区别?

标签 android certificate apk signature

我知道证书包含公钥和一些额外信息(我希望如此),但它是否保存在 apk 文件中?它是文件还是文本还是什么?签名到底是什么? 在 Android 中,我们可以轻松阅读哪一个来验证应用程序?

最佳答案

证书和 keystore

公钥证书,也称为数字证书或身份证书,包含公钥/私钥对的公钥,以及一些其他标识 key 所有者的元数据(例如,姓名和身份)地点)。证书的所有者持有相应的私钥。

当您签署 APK 时,签名工具会将公钥证书附加到 APK。公钥证书充当“指纹”,将 APK 与您和相应的私钥唯一关联起来。这有助于 Android 确保您的 APK 的任何 future 更新都是真实的并且来自原始作者。用于创建此证书的 key 称为应用签名 key 。

keystore 是包含一个或多个私钥的二进制文件。

每个应用程序都必须在其整个生命周期内使用相同的证书,以便用户能够安装新版本作为应用程序的更新。如需详细了解在所有应用的整个生命周期内使用相同证书的好处,请参阅下面的签名注意事项。

签署您的调试版本

从 IDE 运行或调试您的项目时,Android Studio 会使用 Android SDK 工具生成的调试证书自动为您的 APK 签名。首次在 Android Studio 中运行或调试项目时,IDE 会自动在 $HOME/.android/debug.keystore 中创建调试 keystore 和证书,并设置 keystore 和 key 密码。

由于调试证书是由构建工具创建的并且在设计上是不安全的,因此大多数应用商店(包括 Google Play 商店)不会接受使用调试证书签名的 APK 进行发布。

Android Studio 会自动将您的调试签名信息存储在签名配置中,因此您不必在每次调试时都输入它。签名配置是一个对象,包含对 APK 进行签名所需的所有信息,包括 keystore 位置、 keystore 密码、 key 名称和 key 密码。您不能直接编辑调试签名配置,但可以配置如何对发布版本进行签名。

有关如何构建和运行应用程序进行调试的更多信息,

关于android - apk文件中的签名和证书有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46293185/

相关文章:

android - SQLite insert No such column error on android

java - TACO Java 依赖项

ios - iOS 配置门户中的开发证书是什么?

c# - WPF 调试证书无法访问私钥

android - 应用程序安装失败 - INSTALL_FAILED_VERIFICATION_FAILURE

java - Android - 如何在服务重新启动时保留套接字连接

android - index.android.bundle 是 android 版本发布所必需的吗?

windows-8 - 如何使用 Windows 8 RT 的开发人员许可证手动签署 exe 文件

android - 开源 android 应用程序不会通过 Eclipse 运行

android - 针对 Android 的 GeneXus 构建失败,出现 "could not find <sdk>\platform-tools\zipalign.exe"