IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:Hash Algorithm

共 3 篇相关文章

IT 累计浏览 2,927

Hash Collision DoS 问题

最近出现了一个叫 Hash Collision DoS 的安全漏洞,它能让服务器变得异常缓慢。问题的根源在于,许多编程语言的哈希算法存在非随机性,攻击者可以构造大量 key 相同但 value 不同的数据,导致服务器的哈希表退化为一条长长的单向链表。这样一来,原本高效的数据检索会变成耗时的线性查找,CPU 使用率轻松飙升至 100%,造成严重的拒绝服务。 目前,Java、PHP、Python、Ruby 等主流语言都受到影响。这篇文章清晰地剖析了该漏洞的触发原理和危害机制:它并非利用代码逻辑错误,而是针对语言底层数据结构的通用弱点进行攻击。这意味着,只要应用处理外部传入的哈希数据(如 HTTP 参数),就可能暴露在风险之下。 对于服务端开发者而言,这是一个不容忽视的隐患。了解它的工作原理,是采取相应缓解措施(如调整哈希种子、设置输入长度限制)的第一步,能帮助我们在面对这类针对性攻击时,更好地保障服务的稳定与安全。

IT 累计浏览 7,328

TinyURL设计方案

这篇讲的是如何从零设计一个支撑海量访问的短链接服务。作者从“每个链接都那么长,分享实在不方便”这个最朴素的痛点出发,引出了TinyURL这个经典方案。 文章的核心并非停留在“如何映射”这一层,而是深入剖析了背后架构的权衡与选择。它详细拆解了关键设计决策:比如如何设计短码生成算法来平衡唯一性与简洁性,如何选择数据库(关系型还是NoSQL)来应对高并发读写,以及如何处理可能遇到的哈希冲突。文中还特别提到了如何通过缓存、分布式部署来保证系统在高并发下的可用性和性能。 最终,文章不仅给出了一个可行的技术架构蓝图,更重要的是展示了解决此类问题的系统性思维。它告诉我们,一个看似简单的“长转短”功能,要真正做到稳定、高效、可扩展,背后需要考虑的工程细节远比想象中多。

IT 累计浏览 2,796

PHP中的Hash算法

这篇讲的是PHP中核心数据结构Hash Table的底层实现。作者从“Hash Table是PHP的心脏”这一观点切入,深入剖析了PHP如何通过哈希算法管理数组、对象等数据,揭示了其高效运作背后的关键。 文章详细拆解了PHP哈希表的实现机制,重点对比了PHP 5与PHP 7在哈希算法上的重大升级——从DJBX33A到SipHash-1-3的演变。作者不仅解释了SipHash算法在抵御哈希碰撞攻击方面的安全性优势,还结合源码,分析了PHP 7如何通过优化内存布局(如将哈希表拆分为arData和arHash两部分)和引入紧凑的存储结构,显著提升了查询效率与内存利用率。 通过具体的源码片段和性能对比,文章清晰地展示了一次看似简单的数组访问(`$arr['key']`)在底层经历了哈希计算、冲突解决、值定位等一系列精妙操作。这种从原理到实现的贯通分析,有助于开发者理解PHP“快”与“安全”背后的工程抉择。