跳到主要内容

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 |
+-------------+--------------+
欢迎体验 Databend Cloud

基于 Rust + 对象存储构建的新一代多模态数仓,一个平台即可进行 BI、向量、全文检索及地理空间分析。

支持标准 SQL,自动弹性伸缩,助您快速构建现代化数据平台。

注册即领 ¥200 代金券。

注册体验