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
使用 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