使用 SQL Hive 函数 md5() 生成一个 32 个字符的 MD5 哈希值。 Hive 中有没有办法在不影响输出完整性的情况下减少字符限制?不幸的是,我对某些无法更改的列有限制。
我正在尝试屏蔽一些数据字段,并认为使用 MD5 将是最好的选择,但我对其他方法持开放态度。我知道可以使用 rand() 函数,但希望避免使用它。
最佳答案
使用 CRC32 或 hash256 并将值截断到所需的长度,如果您不需要加密强算法,这就足够了。 sha256 截断的冲突概率较小,我推荐它。
示例:
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
关于SQL Hive - MD5 哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66338943/