參考文章:https://blog.csdn.net/kkx1988/article/details/80050355
數據脫敏和數據加密是兩種截然不同的技術,適用於不同目的。
脫敏技術主要是為了兼顧數據安全與數據使用,采用的是專業的數據脫敏算法;而加密則是通過對數據進行編碼來保護數據,檢索原始值的唯一方法是使用解密密鑰解碼數據。
脫敏數據仍然便於使用,但加密數據不是。
加密的主要優點在於它的可逆性,但是解密密鑰存儲位置、如何存儲以及確定誰具有訪問權限等工作都會給整個安全工作增加額外的成本、故障點,加劇復雜性。
數據加密
敏感數據的實際值被轉換為“垃圾”值,除非通過解密還原出原始值,否則人類無法理解這些值。
數據脫敏
在一個不可逆轉的過程中,敏感數據的真實值被轉換成虛構的、但看起來逼真的值,原始值被永久改變且無法恢復。
上面兩個簡圖能夠幫助我們清晰地了解加密和脫敏的概念區別,當然實際技術還要復雜得多。比如脫敏根據不同的數據類型可能會應用不同的脫敏規則。
綜上,我們總結一下數據加密相較於脫敏的不足之處:
1. 數據加密不能完全從技術上保證數據的安全。嚴格來說,任何有權訪問用戶數據的人員,如ETL工程師或是數據分析人員等,均有可能導致數據泄漏(數據脫敏能夠更好地保證數據隱私性)。
2. 沒有訪問用戶數據權限的人員,也可能存在對該數據進行分析挖掘的需求,數據的訪問約束大大限制了充分挖掘數據價值的范圍(數據脫敏能保證數據的可用性)。
3. 解密密鑰存儲位置、如何存儲以及確定誰具有訪問權限等工作都會給整個安全項目增加額外的成本、故障點,擴大復雜度。
數據脫敏和數據加密在數據層面的不同表現:
脫敏:在此只是對數據如姓名,身份證號碼等進行簡單粗暴的脫敏,即改變數據
加密:此處將對於兩種加密算法進行講述。
例DES、MD5加密函數。例如:
DES加密: update tb_salarysign_staff s set s.staffpwd =encrypt_des(s.staffpwd, 'test#5&124*!de');
DES解密:select decrypt_des(s.staffpwd, 'test#5&124*!de') from tb_salarysign_staff s
MD5加密: update tb_salarysign_staff s set s.staffpwd = md5(s.staffpwd);
查看解密后的字段狀態,判斷字段是否已被加密、脫敏
select unpassword(nik, 'key:78891234') from ods.O_GENERA_I;
317103******0002-----解密后的脫敏狀態
select unpassword(nama, 'key:78891234') from ods.O_GENERA_I;
MEYA NIGSSIH-------解密后的未脫敏狀態