FEISTEL_OBFUSCATE
FEISTEL_OBFUSCATE 用于对整数(如 ID 或手机号)进行确定性混淆。它能保持数据的位宽和基数(Cardinality),从而确保混淆后的数据仍可用于 JOIN 操作。
语法
FEISTEL_OBFUSCATE( <number>, <seed> )
参数
| 参数 | 描述 |
|---|---|
<number> | 需要进行匿名化处理的数值。 |
<seed> | 混淆种子。 使用相同的种子将始终生成相同的结果,这对于保持数据一致性非常有用。请注意,种子泄露可能导致原始数据被还原。 |
返回类型
与输入相同
示例
手机号示例(seed = 4242):
SELECT 13000000000 + number AS phone,
feistel_obfuscate(13000000000 + number, 4242) AS masked_phone
FROM numbers(5);
-- MCP 实测输出
+-------------+--------------+
| phone | masked_phone |
+-------------+--------------+
| 13000000000 | 12221668677 |
| 13000000001 | 10245458699 |
| 13000000002 | 15398657780 |
| 13000000003 | 9910824758 |
| 13000000004 | 13299971128 |
+-------------+--------------+

