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

求适配AAD B2C安卓平台SHA1 base64签名哈希的有效正则表达式

Azure AAD B2C 安卓签名哈希校验正则

问题排查

你现有正则的漏洞主要有两处:

  • 未考虑SHA1哈希base64编码的固定结构:20字节的SHA1值经过标准base64编码后,总长度固定为28位,末尾仅会出现1个=,不可能出现2个=的情况,原有正则兼容了两种后缀规则,过度放宽了校验范围
  • 仅做了长度预查,没有强制末尾必须为=,导致platformAndroidSignatureHash这类刚好28位、且所有字符都落在base64允许字符范围内的无后缀字符串被误判为合法

正确正则

标准base64版本(适配Azure AAD B2C官方要求)

^(?:[A-Za-z0-9+/]{4}){6}[A-Za-z0-9+/]{3}=$

兼容URL安全base64版本(可选,针对自定义转码场景)

^(?:[A-Za-z0-9+/\-_]{4}){6}[A-Za-z0-9+/\-_]{3}=$

校验逻辑说明

  • 强制base64编码以4字符为一组的规则,前6组共24位为标准base64合法字符
  • 最后一组固定为3位合法字符+1位=后缀,总长度刚好28位,完全匹配20字节SHA1的base64编码结果
  • 自动过滤无=后缀、双=后缀的无效内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 06:24:03