
php_mt_seed is a PHP mt_rand() seed cracker
php_mt_seed 是一个 PHP mt_rand() 种子破解器。在最简单的调用模式下,它能在使用 mt_srand() 播种后,仅凭首个 mt_rand() 输出值找出可能的种子。在高级调用模式下,它还能将多个、非首个和/或不精确的 mt_rand() 输出值与可能的种子值进行匹配。
PHP 的 mt_rand() 算法自 PHP 3.0.6 引入以来经历了多次变更。php_mt_seed 4.0 支持该算法的 3 个主要修订版本:PHP 3.0.7 至 5.2.0、PHP 5.2.1 至 7.0.x,以及 PHP 7.1.0+(至少支持到撰写本文时的最新版本,即 PHP 7.2.0beta3)。
php_mt_seed 使用针对攻击优化的 PHP mt_rand() 算法重实现。它由 C 语言编写,并可选支持 SIMD 内建函数(SSE2、SSE4.1/AVX、XOP、AVX2、AVX-512 以及 MIC)和 OpenMP。在现代四核 CPU 上,它能在不到一分钟内搜索完整的 32 位种子空间;在第二代 Xeon Phi 上,仅需 3 秒即可完成同样的任务。