我没听说过的murmurhash,竟是“主流“hash函数?

信安类的专业一般接触到的都是cryptographic hash,比如MD5,SHA系列,SM3。

non-cryptographic hash指的是未解决原像问题、第二原像(弱碰撞)和强碰撞的hash函数。追求效率的应用中通常使用的是non-cryptographic hash,因为它们更快。
在Redis,Memcached,Cassandra,HBase,Lucene都使用了Murmurhash(一种non-cryptographic hash)。因此有人说non-cryptographic hash才是主流hash函数。在只需要判断数据是否发生意外变化(如CRC),或是将正常数据在尽可能少的碰撞下分桶时,这么说可能也没错。
第三个参考链接提到了一种攻击,即通过构造碰撞的key,使redis的hashtable退化为链表,从而实现DDoS。

除了murmurhash,后来又出现了更快的xxhash。
在这里插入图片描述

参考链接:
https://security.stackexchange.com/questions/11839/what-is-the-difference-between-a-hash-function-and-a-cryptographic-hash-function
https://zhuanlan.zhihu.com/p/198193276
https://paper.seebug.org/180/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值