SQL Hive - MD5 哈希

标签 sql hash hive hiveql obfuscation

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

相关文章:

sql - 体面的可视化 SQL 查询生成器

javascript - 使用哈希将类添加到具有特定 href 的 a 元素

hive - 如何截断配置单元中的分区外部表?

hadoop - 配置单元错误 : compiling statement: FAILED: ParseException line 15:0 missing EOF at 'collection' near ''\n''

php - MySQL 查询有限制吗?

mysql - 检查一行中的不同值 - sql

sql - 将 4 个表中的数据合并到一列/字段中

ruby - 为什么 Ruby 象征着我的哈希键?

arrays - 有没有更优雅的方法将这个数组转换为散列?

hive - Hive 中的嵌套选择