如何使用 openssl_random_pseudo_bytes 函数? php

How to use openssl_random_pseudo_bytes function ? php

我想生成令牌,将其用作登录身份验证,因此我想确保令牌算法具有很强的加密强度!

我正在使用这段代码来实现:

$crypto_strong = false;
while($crypto_strong !== false)
$openssl =openssl_random_pseudo_bytes(128,$crypto_strong);
$token = bin2hex($openssl);

对吗?

阅读the docs,将$crypto_strong参数描述为:

If passed into the function, this will hold a boolean value that determines if the algorithm used was "cryptographically strong", e.g., safe for usage with GPG, passwords, etc. TRUE if it did, otherwise FALSE

$crypto_strong 的值将针对特定系统固定。所以如果你的系统没有使用强大的算法,你的代码就会进入死循环。

根据那些相同的文档,“这很少是假的,但有些系统可能已损坏或陈旧”。所以听起来你不太可能遇到错误值的例子。也许在这些情况下,中止过程并向用户显示错误会更合适。

我不是很清楚你的背景用例,所以我不知道这种一般方法是否适合你。但是你发布的代码肯定是错误的。