Я хочу сгенерировать токен, использовать его для входа в систему, поэтому я хочу убедиться, что алгоритм токена криптографически силен!
Я использую этот блок кода для достижения этого:
$crypto_strong = false;
while($crypto_strong !== false)
$openssl =openssl_random_pseudo_bytes(128,$crypto_strong);
$token = bin2hex($openssl);
это верно ?
чтение документы, это описывает $crypto_strong
параметр как:
Если оно передается в функцию, оно будет содержать логическое значение, которое определяет, был ли используемый алгоритм «криптографически стойким», например, безопасным для использования с GPG, паролями и т. Д. ПРАВДА если это так, иначе ЛОЖНЫЙ
Значение $crypto_strong
будет исправлено для конкретной системы. Так что, если ваша система не использует сильный алгоритм, ваш код войдет в бесконечный цикл.
Согласно тем же документам «редко это ЛОЖЬ, но некоторые системы могут быть сломаны или старые«. Похоже, вы вряд ли столкнетесь с примерами ложного значения. Возможно, в таких ситуациях было бы более уместно прервать процедуру и представить ошибку пользователю.
Я не совсем понял ваш вариант использования в фоновом режиме, поэтому я не знаю, подходит ли вам этот общий подход. Но, конечно, ваш опубликованный код неверен.
Других решений пока нет …