使用kettle及正則對內容中的身份證號做脫敏處理
按照業務要求,將包含身份證號的內容進行脫敏處理,處理過程中使用正則表達式進行查詢和處理。
select REGEXP_COUNT(字段,'[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]')from 表;
統計字段中符合身份證號正則的數量
Select regexp_replace(字段,’^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]’,’’) from 表;
使用正則將身份證號替換為空;
處理中需要將身份證號進行脫敏,並非將身份證號替換為空,需要借助kettle進行處理,kettle樣式如下:
1.拼接內容
通過SQL語句查詢出脫敏的身份證號內容,並作為輸入內容進行傳遞。
2.字符串替換
使用拼接好的脫敏身份證號,將符合正則的內容替換掉,得到出新的字段,將新字段作為脫敏后的結果進行輸出
3.表輸出
將脫敏后的數據進行輸出到表中做下一步處理
測試表輸出內容如下