现代 PHP 内部使用哪个哈希函数来存储数据结构?

问题描述 投票:0回答:1

这个问题最近让我很烦恼,

我知道 PHP <= 7 used DJBX33A 算法 存储其所有结构,但是当我访问 zend_hash.h 文件时,没有关于它当前使用什么算法的信息。

近年来,DJBX33A 哈希被证明已经过时且不安全。 DJB 共同创作了一种更安全的算法 SipHash,可以更安全地抵御碰撞 DoS 攻击。现在大多数现代编程语言,如 Rust、Python 和 Ruby 都使用它(source)。所以问题是:

PHP 内部哈希表实现有什么变化吗?或者它仍然使用相同的、不安全的 DJBX33A 哈希吗?

php hash hashtable internals php-internals
1个回答
0
投票

截至 2022 年 1 月我的最后一次知识更新,PHP 将哈希函数组合用于内部目的,例如哈希表。确切的哈希函数可能取决于 PHP 的特定版本。 PHP 7 和 PHP 8 之间哈希函数的选择也可能有所不同。

有关最准确和最新的信息,请参阅与您所使用的版本相对应的 PHP 文档或发行说明。请记住,在 2022 年 1 月我的最后一次训练数据之后可能会有更新或更改。

© www.soinside.com 2019 - 2024. All rights reserved.