android - 如何判断 Play Integrity 判决中的证书 SHA-256 摘要是否有效?

标签 android hash google-api google-play-integrity-api

我正在使用 Play Integrity API ,并且正在查看应用程序完整性部分 of the verdict 中的 SHA-256 摘要。

以下是文档对此摘要的描述:

// The sha256 digest of app certificates.
// This field is populated iff appRecognitionVerdict != UNEVALUATED.
certificateSha256Digest: ["6a6a1474b5cbbb2b1aa57e0bc3"]

此判决部分的目标是验证应用程序的完整性,我假设此摘要是从要评估的应用程序版本生成的。但是,我不知道如何确定它是有效的。

我希望如果我找到用于签署应用程序的证书,并且我使用 gradle 生成签名报告,它将包含证书的 SHA-256 摘要,但由 ./gradlew signingReport 生成的 SHA-256与判决中返回的不匹配。

我在这里遗漏了什么吗?如何查找哪些 SHA-256 摘要有效?

最佳答案

signingReport 以十六进制形式提供 sha256 摘要,而 Play Integrity API 字段以 Base64 Web 安全的无换行无填充形式提供它。您可以使用进行转换

echo CE:RT:DI:GE:ST:IN:HE:XF:OR:MM | xxd -r -p | base64 | tr '/+' '_-' | tr -d '='

请注意,将 + 转换为 - 的原因是因为 Base64 Web 安全形式(请参阅规范 here )

关于android - 如何判断 Play Integrity 判决中的证书 SHA-256 摘要是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75061710/

相关文章:

android - 从 AOSP 的 HAL 访问外部存储中的文件

mysql - 将 MD5 哈希密码从一个 MySQL 传输到另一个

javascript - 如何在 Google Place AutoComplete API 上添加 session token

google-api - 使用 dart 和 flutter 与 google calendar api 获取用户日历上的事件列表

android - REACT NATIVE 无法在额外属性扩展上获取属性 'compileSdkVersion',因为它不存在

java - 如何在另一个 Activity 中使用一个 Activity 中的方法?

java - 如何设置颜色选择器?

caching - 如何找出哈希值的含义?

ruby - 检查两个散列是否具有相同的键集

python - 导入错误 : cannot import name SignedJwtAssertionCredentials