FEISTEL_OBFUSCATE
ビット長と値の濃度を保持したまま整数(例: ID や電話番号)を決定論的に難読化するため、テーブル結合が引き続き機能します。
構文
FEISTEL_OBFUSCATE( <number>, <seed> )
引数
戻り値の型
入力と同じ
例
SELECT feistel_obfuscate(10000,1561819567875);
+------------------------------------------+
| feistel_obfuscate(10000, 1561819567875) |
+------------------------------------------+
| 15669 |
+------------------------------------------+
feistel_obfuscate は元の入力のビット数を保持します。より大きな範囲へのマッピングが必要な場合は、元の入力にオフセットを追加できます。例: feistel_obfuscate(n+10000,50)
SELECT feistel_obfuscate(10,1561819567875);
+------------------------------------------+
| feistel_obfuscate(10, 1561819567875) |
+------------------------------------------+
| 13 |
+------------------------------------------+
電話番号形式の例(seed = 4242):
SELECT 13000000000 + number AS phone,
feistel_obfuscate(13000000000 + number, 4242) AS masked_phone
FROM numbers(5);
-- Sample output
+-------------+--------------+
| phone | masked_phone |
+-------------+--------------+
| 13000000000 | 12221668677 |
| 13000000001 | 10245458699 |
| 13000000002 | 15398657780 |
| 13000000003 | 9910824758 |
| 13000000004 | 13299971128 |
+-------------+--------------+