【发布时间】:2025-11-29 02:45:02
【问题描述】:
我使用 PHP 编写了一个生成随机字符组合的软件。为此,我需要随机生成任意长度的整数。所以我使用 GMP 扩展,尤其是 gmp_random_range()。但我需要用一个链接来证明它是加密安全的。或者至少它足够随机。
GMP 随机函数使用种子(gmp_random_seed),如果我不设置种子,一切看起来都足够随机。所以,我想当我没有明确设置种子时,它会从一些可靠的随机源中获取。我找不到明确说明这种情况的内容。
【问题讨论】:
-
不,gmp 无意加密安全。例如,使用random_int 或random_bytes。一般来说,除非有明确的文档证明适合加密使用,否则它不是。
-
此外,能够播种 RNG 几乎总是表明密码不安全。 CSPRNG 通常是从操作系统提供的良好来源自动播种的。