自定义UDF函数进行敏感字段加密解密

本文介绍了为处理敏感数据,如手机号,自定义Hive UDF函数进行AES加密和解密的需求。文章详细阐述了AES加密算法的优势,并分享了在Windows和Linux环境下实现加密UDF和解密UDF时遇到的问题,特别是SecureRandom在不同操作系统上的行为差异导致的解密错误。最后,提供了问题的解决方案。
摘要由CSDN通过智能技术生成

需求
        一些用户数据中包含诸如用户手机号等信息,直接暴露出来的话,是违法的。。。需要对数据进行脱敏,如果单纯的将手机号替换为***号,那么就意味着丢失用户的手机号数据了,因为无法再将***变回手机号。所以需要自定义UDF函数,实现敏感数据的加密解密。

      这里实现了两个UDF函数,一个用于加密,一个用于解密。使用Java自带的crypto模块实现AES加密。

       在代码中将两个UDF函数中的SecureRandom的Seed写死,这样加密后的数据就是固定的,可以通过解密UDF解析出原始数据。

      自定义spark-sql的UDF函数需要实现UDF1、UDF2等方法,后面的数字表示UDF函数的参数个数,但是spark-sql可以使用Hive的函数库,所以直接定义Hive的UDF函数也行。我是实现的Hive的UDF函数

(高级加密标准(英语:Advanced Encryption Standard,缩写:AES),是一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。

       那么为什么原来的DES会被取代呢,,原因就在于其使用56位密钥,比较容易被破解。而AES可以使用128、192、和256位密钥,并且用128位分组加密和解密数据࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值