2023.11.16 hivesql 函数之类型转换,脱敏,与加密函数

本文介绍了SQL中的类型转换函数cast,如将数值转换为字符串,以及用于数据处理的脱敏函数,如mask_hash和自定义替换规则。同时涵盖了MD5、SHA-1、SHA-2和CRC32等加密算法的使用示例。
摘要由CSDN通过智能技术生成

1.类型转换函数

cast:主要用于类型转换,如果转换失败则返回null

select cast(3.14 as int); -- 3
select cast(3.14 as string) ; -- '3.14'
select cast('3.14' as float); -- 3.14
select cast('3.14' as int); -- 3
select cast('binzi' as int); -- null

很多时候,底层也默认做了自动转换

select '3'+3;  --6

实际应用场景:concat_ws用指定分隔符拼接到一起生成新的字符串,但拼接的内容必须是字符串类型,所以可以用cast来先进行类型转换

select concat_ws('-','bbdwj',cast(666 as string)); --  'bwj666'

2.脱敏函数

数据脱敏(Data Masking),顾名思义,是屏蔽敏感数据,对某些敏感信息(比如,身份证号、手机号、卡号、客户姓名、客户地址、邮箱地址、薪资等等 )通过脱敏规则进行数据的变形,实现隐私数据的可靠保护。业界常见的脱敏规则有,替换、重排、加密、截断、掩码,用户也可以根据期望的脱敏算法自定义脱敏规则。

-- 演示数据脱敏函数[了解]
-- mask_hash:  返回指定字符串的hash编码
select mask_hash('binzi');

 大小写转换

--将查询回的数据,大写字母转换为X,小写字母转换为x,数字转换为n。
select mask("abc123DEF"); -- xxxnnnXXX

--自定义替换的字母: 依次为大写小写数字
select mask("abc123DEF",'大','小','数');
select mask("A,b,1",'大','小','数');  -- 大,小,数
select mask("abc123DEF",'/','.','%'); -- ...%%%///

自定义脱敏位置

--mask_first_n(string str[, int n]
--对前n个进行脱敏替换 大写字母转换为X,小写字母转换为x,数字转换为n。
select mask_first_n("abc123DEF",6);  --xxxnnnDEF

--mask_last_n(string str[, int n])
--对后n个进行脱敏替换 大写字母转换为X,小写字母转换为x,数字转换为n。
select mask_last_n("abc123DEF",6);  -- abcnnnXXX

--mask_show_first_n(string str[, int n])
--除了前n个字符,其余进行掩码处理
select mask_show_first_n("abc123DEF",6);  --abc123XXX

--mask_show_last_n(string str[, int n])
--除了后n个字符,其余进行掩码处理
select mask_show_last_n("abc123DEF",6);  --xxx123DEF

3.加密函数

--------------------------------------其他函数-----------------------------------------------
-- 演示其他函数
--取哈希值函数:hash
select hash("bbdwj"); -- 93524471

--MD5加密: md5(string/binary)
select md5("binzi"); -- 32位   072853027b387fcf891a610137f8dc1b
select length('072853027b387fcf891a610137f8dc1b');


--SHA-1加密: sha1(string/binary)
select sha1("binzi"); -- 40位 66368c80ca9125f9a8a945aaf1e1ec3f8b21f7f9
select length('66368c80ca9125f9a8a945aaf1e1ec3f8b21f7f9');

--SHA-2家族算法加密:sha2(string/binary, int)  (SHA-224, SHA-256, SHA-384, SHA-512)
select sha2("binzi",224);
select sha2("binzi",512);

--crc32加密:
select crc32("binzi"); -- 3221865747


-- 当前环境相关的
select current_user(),logged_in_user(),current_database(),version();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白白的wj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值