Генерация случайного двоичного файла

Вы не можете только записать ссылку на "сервер zip" или этажерку? То, почему zip архивирует себя, должно быть подано от Django? Сценарий CGI эры 90-х, чтобы генерировать zip и плюнуть ею к stdout является действительно всем, что это требуется здесь, по крайней мере, насколько я вижу.

21
задан 22 September 2009 в 22:10
поделиться

2 ответа

Это потому, что в большинстве систем / dev / random использует случайные данные из среды, такие как статические данные от периферийных устройств. Пул действительно случайных данных (энтропия), который он использует, очень ограничен. Пока не будет доступно больше данных, выходные данные будут заблокированы.

Повторите тест с помощью / dev / urandom (обратите внимание на u ), и вы увидите значительное ускорение.

См. Wikipedia для больше информации. / dev / random не всегда выводит действительно случайные данные, но явно в вашей системе это так.

Пример с / dev / urandom :

$ time dd if=/dev/urandom of=/dev/null bs=1 count=1024
1024+0 records in
1024+0 records out
1024 bytes (1.0 kB) copied, 0.00675739 s, 152 kB/s

real    0m0.011s
user    0m0.000s
sys 0m0.012s
29
ответ дан 29 November 2019 в 20:17
поделиться

Попробуйте вместо этого / dev / urandom :

$ time dd if=/dev/urandom of=random-file bs=1 count=1024

От: http://stupefydeveloper.blogspot.com/2007/12/random-vs-urandom .html

Основное различие между random и urandom заключается в том, как они извлекают случайные данные из ядра. random всегда берет данные из пула энтропии. Если пул пуст, random заблокирует операцию до тех пор, пока пул не будет заполнен достаточно. urandom будет генерировать данные с использованием алгоритма SHA (или любого другого алгоритма, иногда MD5) в случае, если пул энтропии ядра пуст. urandom никогда не заблокирует операцию.

12
ответ дан 29 November 2019 в 20:17
поделиться
Другие вопросы по тегам:

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