SQL Hive - MD5 哈希

SQL Hive - MD5 Hash

使用 SQL Hive 函数 md5() 生成 MD5 散列,包含 32 个字符。 Hive 中是否有一种方法可以在不影响输出完整性的情况下减少字符限制?不幸的是,我对某些无法更改的列有限制。

我正在尝试屏蔽一些数据字段并认为使用 MD5 是最佳选择,但我对其他方法持开放态度。我知道可以使用 rand() 函数,但希望避免它。

使用 CRC32 或 hash256 并将值截断为所需的长度,如果您不需要加密强算法,这就足够了。 sha256 truncated 碰撞的可能性较小,我推荐它。

示例:

select crc32('Some test message') AS CRC32, 
       sha2('Some test message', 256) as sha256, 
       substr(sha2('Some test message', 256),1,10) as sha256truncated

结果:

crc32       sha256                                                              sha256truncated
111182007   43bf899ff002b5fa8e0510b22943ee5c15e467e26fe777d0740ba004ebf3a28d    43bf899ff0