没有完美的数据结构:从时空权衡到缓存友好的选择之道
1953年,IBM工程师Hans Peter Luhn在一份内部备忘录中提出了一个改变计算机科学进程的想法:用哈希函数将数据映射到固定位置,实现快速查找。这个被称为"哈希表"的数据结构,至今仍是计算机领域应用最广泛的发明之一。 ...
1953年,IBM工程师Hans Peter Luhn在一份内部备忘录中提出了一个改变计算机科学进程的想法:用哈希函数将数据映射到固定位置,实现快速查找。这个被称为"哈希表"的数据结构,至今仍是计算机领域应用最广泛的发明之一。 ...
title: “哈希碰撞攻击:为何一条HTTP请求能让服务器CPU飙升到100%” date: “2026-03-05T16:55:02+08:00” description: “深入解析哈希碰撞DoS攻击的技术原理:从2003年Crosby和Wallach的开创性论文到2011年横扫主流语言的安全危机,揭示确定性哈希函数如何将O(1)操作变成O(n²)灾难,以及SipHash如何成为现代语言的标准防线。” draft: false categories: [“安全漏洞”, “数据结构”, “Web安全”] tags: [“哈希碰撞”, “HashDoS”, “算法复杂度攻击”, “SipHash”, “哈希表”, “拒绝服务攻击”, “Web安全”] 2003年8月,莱斯大学的Scott Crosby和Dan Wallach在第12届USENIX安全会议上发表了一篇题为《Denial of Service via Algorithmic Complexity Attacks》的论文。他们在演讲中展示了如何用不到拨号调制解调器的带宽,让一台专用入侵检测系统服务器在六分钟内开始丢弃71%的流量。 ...
1970年,计算机科学家Burton Howard Bloom在《Communications of the ACM》上发表了一篇论文,标题是"Space/Time Trade-offs in Hash Coding with Allowable Errors"。论文只有五页,提出的问题却出奇地实用:如果你想在一个有限的内存空间里存储大量数据,并且允许偶尔犯错,能做到什么程度? ...