Как использовать функцию openssl_random_pseudo_bytes? Переполнение стека

Я хочу сгенерировать токен, использовать его для входа в систему, поэтому я хочу убедиться, что алгоритм токена криптографически силен!

Я использую этот блок кода для достижения этого:

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

это верно ?

0

Решение

чтение документы, это описывает $crypto_strong параметр как:

Если оно передается в функцию, оно будет содержать логическое значение, которое определяет, был ли используемый алгоритм «криптографически стойким», например, безопасным для использования с GPG, паролями и т. Д. ПРАВДА если это так, иначе ЛОЖНЫЙ

Значение $crypto_strong будет исправлено для конкретной системы. Так что, если ваша система не использует сильный алгоритм, ваш код войдет в бесконечный цикл.

Согласно тем же документам «редко это ЛОЖЬ, но некоторые системы могут быть сломаны или старые«. Похоже, вы вряд ли столкнетесь с примерами ложного значения. Возможно, в таких ситуациях было бы более уместно прервать процедуру и представить ошибку пользователю.

Я не совсем понял ваш вариант использования в фоновом режиме, поэтому я не знаю, подходит ли вам этот общий подход. Но, конечно, ваш опубликованный код неверен.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]