博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

数据脱敏和数据加密的区别

Posted on 2019-06-17 11:27  小猪课堂  阅读(2355)  评论(0编辑  收藏  举报

参考文章: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-------解密后的未脱敏状态