SQL Server實現敏感信息以星號處理

最近有個需求,就是需要把一些敏感信息,如姓名,身份證號,手機號等涉及個人隱私的信息,以*號進行表示。我這裏使用的是SQL Server數據庫,不適合其他數據庫使用,但是思路一樣。

解決思路:辦法有很多,可以通過正則表達式、字符串截取、拼接的形式,我使用的是字符串截取、拼接的方式,比如身份證,我只需要截取它左邊4個字符,右邊2個字符,而中間的字符我用 * 進行拼接。我這裏用到了SQL Server自帶的兩個函數,這兩個函數跟MySQL的相同。

 LEFT(str,len)     說明:從左邊開始截取字符串,str爲要截取的字符串,len爲要截取的字符串長度

RIGHT(str,len)    說明:從右邊開始截取字符串,str爲要截取的字符串,len爲要截取的字符串長度

 SQL Server進行字符串的拼接直接使用“+”,這是SQL Server與其他數據庫其中一個不同的地方。以下是我一個SQL 查詢示例:

SELECT top 10 LEFT(customer_name, 1)+'**' AS name, LEFT(id_no, 4)+'****'+RIGHT(id_no, 2) AS no FROM customer

結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章