Google Play 签名 SHA256 指纹发布一次后会改变吗?

Posted

技术标签:

【中文标题】Google Play 签名 SHA256 指纹发布一次后会改变吗?【英文标题】:Does Google Play Signing SHA256 fingerprint change after publishing once? 【发布时间】:2021-01-28 17:21:43 【问题描述】:

用例:使用签名APK的SHA256指纹加密一些数据并将其保存到文件中,然后在发布构建时在应用程序中解密。数据必须以硬编码方式加密,因为我们将使用密钥库信息和带有 Google Play 签名的信息。

编辑:例如,我以一种在丢失密钥库文件后不明确更新新证书的方式提出这个问题。这仅用于有关 Google Play 本身的信息,无论他们是否自行更改。

我真的找不到任何关于它的文档(或者我可能不知道如何搜索),但如您所知,在发布应用时,您可以注册 Google Play 签名,也可以正常发布。在我们的应用程序中,我们通过使用PackageManager 来加密一些信息来查询 APK 的 SHA256 指纹,并且我知道使用 Google Play 签名会为此更改输出,因为我们之前遇到过问题。

输出变化大致没问题,只要是永久不变的。但是,我不确定是不是这样,所以这是我的问题:

Google Play App Signing 发布一次后会自行更改指纹或证书吗?或者它是否保持指纹或证书相同?任何帮助表示赞赏,谢谢。

【问题讨论】:

【参考方案1】:

当您使用 Google Play 应用签名时,您的密钥存储在 Google 用来存储自己的密钥的同一基础架构上。密钥受 Google 的密钥管理服务保护

【讨论】:

这并不能真正回答我担心的问题。我在问密钥是否可以自行更改,我知道密钥存储在 Google 中。【参考方案2】:

每个用于调试或构建的应用都有自己生成的唯一 SHA 密钥,用于唯一标识应用版本。

Google Play 应用签名是否会更改其上的指纹或证书? 发表一次后拥有?还是保留指纹 还是证书一样?

不,一旦将 SHA 密钥分配给 apk,Google 控制台就不会更改它。从那时起,每次您发布应用更新时,此更新的应用版本都会链接为父版本签名 apk 的后续子版本。

【讨论】:

好的,很高兴知道签名的APK的指纹不会改变。更新后呢?我没有在我的问题上问这个,所以我很抱歉。 更新后,您可能也知道我们需要更改版本号。我们的 apk 也是如此。这样就可以维护相同的 SHA 密钥,但现在我们更新了版本号。它将更新 apk 视为父 apk 的子级,因此您可能会注意到与第一次相比,更新所需的时间要少得多。因为已经生成了 SHA 密钥,所以它预先加密了应用程序的所有信息。【参考方案3】:

对于我的一个应用程序,我必须为 OTP 生成一个应用程序哈希。 我的 Google Play 应用程序的哈希值与使用 release.keystores 签名时本地生成的哈希值不同。然后我使用了 depyloyment.cert 而不是 release.keystores。我仅将 release.keystores 用于发布到 Google Play。

【讨论】:

以上是关于Google Play 签名 SHA256 指纹发布一次后会改变吗?的主要内容,如果未能解决你的问题,请参考以下文章

Google Play 上新版本应用的上传失败并出现签名错误

即使在更新 SHA 1 指纹以获取发布密钥后,Google 地图也无法在 Play 商店中发布后加载

APP上架华为商店获取SHA256证书指纹

显示发布证书指纹仅显示 (SHA-256),不显示 SHA1

Google Play 应用签名证书和上传证书都在 Google Play 控制台中创建了相同的 SHA1 密钥

在 Android Studio for Google Maps 中获取 SHA1 指纹证书