需求
前端传过来表名、列名、列的脱敏规则的json,我在后端解析出规则bean的对象,编写对应的方法或者UDF,然后在df或者sql中对指定列进行转换,保存为文件后。通过distcp发送到别的集群
解析json
将json转为规则bean,根据bean获取表的列和对应的列需要调用的函数。
转换列并生成文件
df.selectExpr( 自定义函数( 列名 ) )
加密算法
md5
md5是一种散列算法,属于非对称加密,意思就是无法恢复。
一开始并不是用来加密的,其本质用途是用于对比两个食物是否为同一个,换句话可以说是一种签名,每个人的签名都应该是不一致的,因此需要对比两个对象时,可以不对比对象本身,而对比他们的签名(散列值)
但它并不是绝对安全的,有一定的概率出现碰撞,毕竟数是无限的,而md5是有限的。但在一般场景应用很广,比如密码脱敏、文件完整性的校验。
在实际的项目开发中,用户的密码,一般会经过md5后存入数据库,验证的原理跟上文一致。楼上说的很对,一般存储密码是都会加salt后在计算md5值:md5(password + salt)或者多次md5:md5(md5(password)),这样其实可保证密码的安全性。
base64
可恢复