gpt4 book ai didi

php - openssl_random_pseudo_bytes() 很慢 (PHP)

转载 作者:可可西里 更新时间:2023-10-31 23:07:07 28 4
gpt4 key购买 nike

我在 PHP 中使用 opennssl_random_pseudo_bytes(),它的执行速度非常慢。我的应用程序经常超时(抛出执行时间限制错误)。 OpenSSL random 这么慢有什么特别的原因吗?我目前在我的开发人员机器上使用 Windows 7 x86。

最佳答案

在 Windows 上,openssl_random_pseudo_bytes() 调用 OpenSSL 的 RAND_screen() 来生成熵。它非常慢,而且 PHP 几乎不是第一个遇到这种情况的 unix->windows 端口。看起来常见的建议是改用 RAND_seed()。

另外值得注意的是,OpenSSL 文档指出:

The RAND_screen() function is available for the convenience of Windows programmers. It adds the current contents of the screen to the PRNG. For applications that can catch Windows events, seeding the PRNG by calling RAND_event() is a significantly better source of randomness. **It should be noted that both methods cannot be used on servers that run without user interaction**.

所以这实际上可能是一个经过认证的错误 - 我已经向核心开发人员提出了这个问题。在 Win32 上为 OpenSSL 生成熵的更好方法可用之前,简短的回答似乎是“是的,它在 Windows 上很慢。对此感到抱歉。”

一些讨论问题的附加链接:

Open Bug at rt.openssl.org
curl developers discuss alternative methods of collecting entropy on Win32
Google Groups archive of OpenSSL Users List discussing the slowness of RAND_poll() on Win32
Another discussion on the slowness of RAND_screen() on mail-archive.com's archive of OpenSSL Users

关于php - openssl_random_pseudo_bytes() 很慢 (PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1940168/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com