You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android自动读取OTP短信时后端如何验证哈希码?

后端验证OTP短信哈希码合法性的方案

可以在后端验证短信中哈希码的合法性,核心思路是在后端复现App端生成哈希码的逻辑,对比短信中的哈希码是否与后端生成的合法哈希码一致,具体步骤如下:

1. 准备必要的基础数据

首先需要获取应用的两个核心信息:

  • 应用的包名(比如com.example.app)
  • 应用签名证书的SHA-256哈希值(去掉冒号的纯字符串形式,比如ABC123DEF456...)
    • 可通过Android Studio的签名报告获取,或使用keytool命令生成:
      keytool -list -v -keystore your_app_keystore.jks -alias your_key_alias
      
    • 注意:正式版、测试版应用的签名证书可能不同,需要分别对应维护哈希值。

2. 后端复现哈希码生成逻辑

按照Google定义的规则,在后端实现哈希码的生成流程:

  1. 拼接字符串:将包名和SHA-256哈希值拼接为 [包名] [SHA-256哈希值] 的格式
  2. 计算HMAC-SHA256:使用SHA-256哈希值的字节数组作为密钥,对拼接后的字符串进行HMAC-SHA256加密
  3. 截取并编码:取加密结果的前11个字节,再进行Base64编码,得到的就是合法的应用哈希码

3. 验证哈希码合法性

当收到包含哈希码的OTP短信时:

  • 用上述逻辑生成当前应用的所有合法哈希码(覆盖不同签名环境的情况)
  • 检查短信中的哈希码是否存在于合法列表中:
    • 存在则判定为合法哈希码,继续处理OTP
    • 不存在则判定为恶意/可疑哈希码,直接拒绝处理该短信

注意事项

  • 务必妥善保管签名证书的SHA-256哈希值,避免泄露,防止攻击者伪造合法哈希码
  • 如果应用有多个签名环境(如开发、测试、生产),需要分别生成对应哈希码并加入验证列表

内容的提问来源于stack exchange,提问作者Gufran Khurshid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 21:54:14