我正在使用 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/