В моем приложении мне требуется функция для генерации (непредсказуемо) случайных значений, которые каждый раз меняются при вызове, например, внутри быстрого цикла.
На платформах Linux, на которых я буду выпускать свой скрипт (из которых будет выполняться в SSL в PHP) Я объединю, возможно, несколько средств, чтобы гарантировать, что начальное число или хеш-код полностью случайны, путем запроса / dev / random, возможно, в сочетании со средствами OpenSSL и включением специфических для системы значений, таких как последний измененный сценарий ивремя создания.
Я использую эти конкретные значения, так как даже если человек А имеет сценарий и знает методы, он не сможет угадать (/ dev / random содержимого, использование памяти в данный момент,время модификации, вероятно, и т. д.) и не сможет реально снизить безопасность пользователя B, выполняющего тот же сценарий.
На платформе Windows, к которой, к сожалению, я должен сейчас разработать (я все еще тестирую на Linux,но реже) мне требуются случайные значения которых я описываюописанный выше, только для обеспечения как минимум ограниченной защиты от предсказания начальных чисел или ключей.
Я пытался в качестве первой попытки использовать memory_get_usage()
(с или без доступного параметра true
для «истинного» использования памяти дляPHP), и кажется, что значения остаются очень статичными, даже если каждая итерация выполняет значительный объем памяти, требующей больших затрат.
Возможно, было бы целесообразно использовать это (несколько динамическое) использование памяти в качестве начального числа дляPRNG генерировать больше (быстро) случайных чисел?Или тот факт, что память настолько ограничена, что они могли бы просто создать 2 ^ xx семени и грубо угадать это ... Я начинаю размыть линию того, что реально случайно, если даже можно угадать мои операции, даже если они«не» на самом деле так случайно.