Как Вы генерируете криптографически безопасные случайные числа с PHP? [дубликат]

g++ -W -Wall -Werror

будет отображать все ошибки и возможные предупреждения и рассматривать их как ошибки.

6
задан Community 23 May 2017 в 12:06
поделиться

3 ответа

как насчет uniqid ? в документации есть пример того, как его можно использовать для файлов cookie / сеансов.

-7
ответ дан 18 December 2019 в 05:10
поделиться

В зависимости от вашей платформы вы можете использовать / dev / urandom или CAPICOM. Это красиво резюмировано в этом комментарии Марка Сикофа :

«Если вам нужны псевдослучайные биты для целей безопасности или криптографии (яйцо, случайный IV для блочного шифра, случайная соль для хеша пароля) mt_rand () - плохой источник. На большинстве платформ Unix / Linux и / или MS-Windows вы можете получить лучшую оценку псевдослучайных битов из ОС или системной библиотеки, например:

  GetRandom (16,0);

 // если мы запрашиваем двоичные данные, PHP изменяет их, поэтому мы
// запрашиваем возвращаемое значение base64. Мы выдавливаем
 // избыточность и бесполезность == CRLF путем хеширования ...
если ($ pr_bits) {$ pr_bits = md5 ($ pr_bits, TRUE); }
 } catch (исключение $ ex) {
// эхо 'Исключение:'. $ ex-> getMessage ();
 }
}

if (strlen ($ pr_bits) <16) {
 // делаем что-нибудь, чтобы предупредить владельца системы, что
 // псевдослучайный генератор отсутствует
}
?>

NB: как правило, безопасно оставить в вашем коде как попытку чтения / dev / urandom, так и попытку доступа к CAPICOM, хотя каждая из них будет терпеть неудачу на платформе другого. Оставьте их обоих там, чтобы ваш код был более переносимым ».

4
ответ дан 18 December 2019 в 05:10
поделиться

Совершенно неожиданно: возьмите микровремени, умножьте его на микровремя% 100 и сделайте несколько случайных операций на sha1 полученного результата.

-4
ответ дан 18 December 2019 в 05:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: