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

如何在Purview自定义敏感信息类型中实现复杂校验和算法?

Azure Purview 自定义敏感信息类型复杂校验位算法实现方案

Purview 默认的校验和规则确实只支持单权重序列 + 单次模运算的简单逻辑,你提到的(11 - (加权和 Mod 11)) Mod 10这种嵌套模运算的复杂算法,不在默认支持范围内。

不过可以通过以下两种方式实现需求:

1. 结合正则表达式与自定义函数(推荐)

Purview 允许在自定义敏感信息类型中使用正则表达式匹配格式,再配合自定义 Python 函数实现复杂校验逻辑:

  • 第一步:用正则表达式匹配目标数据的格式(比如匹配前7位数字加校验位的8位结构)
  • 第二步:在Purview的自定义敏感信息类型配置中,启用“自定义函数”选项,编写Python代码实现你的校验位算法:
    def validate_check_digit(input_str):
        # 校验输入长度
        if len(input_str) != 8:
            return False
        # 提取前7位数字和校验位
        digits = [int(c) for c in input_str[:7]]
        provided_check = int(input_str[7])
        # 计算加权和
        weights = [9,7,5,3,9,7,5]
        weighted_sum = sum(d * w for d, w in zip(digits, weights))
        # 执行嵌套模运算
        calculated_check = (11 - (weighted_sum % 11)) % 10
        return calculated_check == provided_check
    
  • 第三步:将自定义函数与正则规则关联,只有同时匹配正则格式且函数返回True的内容,才会被标记为敏感信息。

2. 拆分逻辑为多步骤规则(局限性较大)

如果无法使用自定义函数,可尝试将嵌套模运算拆分为两个简单校验步骤,但这种方法仅适用于特定场景:

  • 先计算加权和的模11结果,得到中间值x = 加权和 % 11
  • 再推导(11 - x) %10的可能取值范围,通过正则或其他规则间接约束校验位。但Purview默认规则无法直接关联这两个步骤,实用性不强。

注意事项

  • 自定义函数需要在Purview的“自定义技能”中部署,确保运行环境符合要求
  • 测试时要覆盖边界情况(比如加权和模11等于0时,(11-0)%10=1,需验证校验位是否匹配)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 19:27:06