利用 kettle 对 oracle 实现字符串的脱敏和对称加密

发布时间 2023-11-15 15:10:00作者: vx_guanchaoguo0

脱敏要求

  • 对身份证进行 ASE加密处理
  • 对手机号 只显示前三位和后四位 其余使用**** 代替
  • 对于职业只显示 前三个字
  • 对于真实姓名只显示展示一位即可

kettle 建立转换

  • 表输入
  • 表输出

ASE加密

  • 选择组件
  • 密钥转换 密钥必须是 16 进制 且大于 16 个字节
  • 配置字段和加密算法

对于掩码处理

  • 用字符串组件实现正则 替换 剪切 链接等操作
  • 也可以用脚本实现
  • 但是都很麻烦 不推荐 数据都可以一个函数实现
    • 例如实现 对于真实姓名只显示展示一位即可 需要剪切 + 计算器 + 替换

实现手机号掩码

SELECT 
    SUBSTR('17665305038', 1, 3) || '****' || SUBSTR('17665305038', -4) AS masked_column
FROM 
    DUAL;

实现姓名掩码

SELECT RPAD(SUBSTR('Hello World', 1, 1), LENGTH('Hello World'), '*') AS masked_column
FROM DUAL;

实现职业掩码

SELECT RPAD(SUBSTR('Hello World', 1, 3), LENGTH('Hello World'), '*') AS masked_column
FROM DUAL;

效果如下