在 PHP 中生成一次性令牌:random_bytes还是openssl_random_pseudo_bytes?
我需要在PHP中生成一个一次性令牌。有两个可用的函数,我可以使用它们似乎做同样的事情:random_bytes和openssl_random_pseudo_bytes。例如,使用 :random_bytes
var_dump(bin2hex(random_bytes(12)));
--> string(24) "338f489ec37a2c2b4943905d"
并使用 :openssl_random_pseudo_bytes
var_dump(bin2hex(openssl_random_pseudo_bytes(12)));
--> string(24) "1c7febea20029bd524fba8e7"
openssl_random_pseudo_bytes
是 PHP 5.3 及更高版本(所以我假设它已经存在了更长的时间),并且是 PHP 7。我使用的是 PHP 7,所以我可以使用其中任何一个。random_bytes
那么,两者之间有什么主要(或次要)区别吗?如果没有,我很想去,因为它有一个更容易的名字(=代码更容易阅读)。random_bytes