openssl_random_pseudo_bytes and/or /dev/random 会导致性能问题吗?
Can openssl_random_pseudo_bytes and/or /dev/random ever lead to performance issues?
我使用 openssl_random_pseudo_bytes
来实现加密安全随机性。这个函数用的是/dev/random/还是/dev/urandom?我读过前者比后者更安全,但如果没有足够的随机性,可以“阻止”。
这种阻塞是否只是一种延迟,如果是这样,它是否会导致性能问题?我阅读了博客 post Better Random Numbers in PHP using /dev/urandom,其中指出:
/dev/urandom is a special psuedo-file on unix-like operating systems
that generates “mostly random” bytes and is non-blocking. /dev/random
(with no “u“) is for truly cryptographic applications such as key
generation and is blocking. Once you exhaust it’s supply of randomness
it blocks until it distills new randomness from the environment.
Therefore, you don’t want to use /dev/random in your web application.
这是真的吗? openssl_random_pseudo_bytes and/or /dev/random 会导致性能问题吗?
我没用过/dev/random
。但是我在 Windows 上使用 Win32 Cryptography API 来生成随机数。我比较了 OpenSSL 和 CAPI 的性能,发现 OpenSSL 比 Windows 对应物更快。但是我在 C++ 程序中测试过,而不是在 PHP.
中
所以,我认为 OpenSSL 不能比 /dev/random
慢,如果不是更快的话。 OpenSSL 使用系统调用来播种,而不是生成。
一定不能变成瓶颈。但是您应该在做出任何决定之前分析结果。我在 Windows.
上没有发现任何问题
我使用 openssl_random_pseudo_bytes
来实现加密安全随机性。这个函数用的是/dev/random/还是/dev/urandom?我读过前者比后者更安全,但如果没有足够的随机性,可以“阻止”。
这种阻塞是否只是一种延迟,如果是这样,它是否会导致性能问题?我阅读了博客 post Better Random Numbers in PHP using /dev/urandom,其中指出:
/dev/urandom is a special psuedo-file on unix-like operating systems that generates “mostly random” bytes and is non-blocking. /dev/random (with no “u“) is for truly cryptographic applications such as key generation and is blocking. Once you exhaust it’s supply of randomness it blocks until it distills new randomness from the environment. Therefore, you don’t want to use /dev/random in your web application.
这是真的吗? openssl_random_pseudo_bytes and/or /dev/random 会导致性能问题吗?
我没用过/dev/random
。但是我在 Windows 上使用 Win32 Cryptography API 来生成随机数。我比较了 OpenSSL 和 CAPI 的性能,发现 OpenSSL 比 Windows 对应物更快。但是我在 C++ 程序中测试过,而不是在 PHP.
所以,我认为 OpenSSL 不能比 /dev/random
慢,如果不是更快的话。 OpenSSL 使用系统调用来播种,而不是生成。
一定不能变成瓶颈。但是您应该在做出任何决定之前分析结果。我在 Windows.
上没有发现任何问题