如何使用 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
的值将针对特定系统固定。所以如果你的系统没有使用强大的算法,你的代码就会进入死循环。
根据那些相同的文档,“这很少是假的,但有些系统可能已损坏或陈旧”。所以听起来你不太可能遇到错误值的例子。也许在这些情况下,中止过程并向用户显示错误会更合适。
我不是很清楚你的背景用例,所以我不知道这种一般方法是否适合你。但是你发布的代码肯定是错误的。
我想生成令牌,将其用作登录身份验证,因此我想确保令牌算法具有很强的加密强度!
我正在使用这段代码来实现:
$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
的值将针对特定系统固定。所以如果你的系统没有使用强大的算法,你的代码就会进入死循环。
根据那些相同的文档,“这很少是假的,但有些系统可能已损坏或陈旧”。所以听起来你不太可能遇到错误值的例子。也许在这些情况下,中止过程并向用户显示错误会更合适。
我不是很清楚你的背景用例,所以我不知道这种一般方法是否适合你。但是你发布的代码肯定是错误的。