openssl_random_pseudo_bytes和/或/ dev / random是否会导致性能问题?

时间:2015-01-23 06:16:20

标签: php openssl

我使用openssl_random_pseudo_bytes来加密安全随机性。这个函数使用/ dev / random /或/ dev / urandom吗?我读过前者比后者更安全但是如果没有足够的随机性可以“阻止”。

这种阻止只是延迟,如果是这样,它是否会导致性能问题?我阅读了博客文章 Better Random Numbers in PHP using /dev/urandom ,其中指出:

  

/ dev / urandom是类Unix操作系统上的特殊伪文件   生成“大多数随机”字节并且是非阻塞的。的/ dev /随机   (没有“u”)用于真正的加密应用程序,如密钥   一代又在阻挡。一旦你耗尽它的随机性供应   它会阻止,直到它从环境中提取新的随机性。   因此,您不希望在Web应用程序中使用/ dev / random。

这是真的吗? openssl_random_pseudo_bytes和/或/ dev / random是否会导致性能问题?

1 个答案:

答案 0 :(得分:-1)

我从未使用/dev/random。但我在Windows上使用Win32 Cryptography API生成随机数。我比较了OpenSSL和CAPI的性能,OpenSSL比Windows对应的速度更快。但我已经在C ++程序中进行了测试,而不是在PHP中进行测试。

所以,我认为OpenSSL如果不是更快,一定不能慢于/dev/random。 OpenSSL使用系统调用进行种子设定,而不是用于生成。

它绝不能成为瓶颈。但是你应该在做出决定之前对结果进行分析。我在Windows上没有发现任何问题。