目录
hive中的hash函数
Hive中的HASH函数用于将任意长度的字符串或二进制数据映射为一个固定长度的整数值,其语法如下:
HASH(str)
其中,str是要进行哈希计算的字符串或二进制数据。
Hive中的哈希函数采用的是MurmurHash算法,这是一种非常高效的哈希算法。该算法将输入数据分为若干个块,每个块都进行哈希计算,最终将所有块的哈希值合并起来得到最终的哈希值。
由于哈希函数的特性,相同的输入数据每次计算得到的哈希值都是相同的,因此HASH函数可以用于对数据进行快速的去重或分组
实例
selecthash('我爱你');--507738438select substr(hash('我爱你'),-2);--38
hive 中md5函数
MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护;
MD5算法具有以下特点:
1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
2、容易计算:从原数据计算出MD5值很容易。
3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的
select md5('我爱你');---4f2016c6b934d55bd7120e5d0e62cce3select md5(mobile)as mobile_md5 FROM table_name;
hive中sha2函数
string sha2(string/binary, int) 返回SHA-2,
参数2: 224, 256, 384, 512, 或 0(=256)中的一个,表示SHA-224, SHA-256, SHA-384, SHA-512。
select sha2('123456',256)-- 8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
补充
Hive在2.1.0版本后,支持数据屏蔽函数(Data Masking Functions),可以用于数据的快速脱敏掩码处理;
select mask(要加密字段)from 表名 -- 输出默认脱敏后的结果select mask(要加密字段,'X','x','#')from 表名 -- 输出自定义脱敏后的结果select mask_first_n(要加密的字段,n)from 表名 -- 对前n个字符进行脱敏select mask_last_n(要加密的字段,n)from 表名 -- 对后n个字符进行脱敏select mask_show_first_n(要加密的字段,n)from 表名 -- 对除了前n个字符之外的字符进行脱敏select mask_show_last_n(要加密的字段,n)from 表名 -- 对除了后n个字符之外的字符进行脱敏select mask_hash(字段)from 表名 -- 对字段进行hash操作,若是非string类型的字段此函数就返回null
---函数调用:
mask("abcd-EFGH-9876-5432")---结果为:--xxxx-XXXX-nnnn-nnnn
版权归原作者 浊酒南街 所有, 如有侵权,请联系我们删除。