почему perl, ruby ​​use / dev / urandom

Я strace простой сценарий с использованием perl и bash.

 $ strace perl -e 'echo "test";' 2>&1 | grep 'random' open("/dev/urandom", O_RDONLY) = 3 $ strace bash 'echo "test"' 2>&1 | grep 'random' $ 

Почему perl нуждается в генераторе псевдослучайных чисел для такого тривиального сценария? Я ожидал бы открытия /dev/urandom только после первого использования случайных данных.

Изменить: я также тестировал python и ruby

 $ strace python -c 'print "test"' 2>&1 | grep random $ $ strace ruby -e 'print "test\n"' 2>&1 | grep random open("/dev/urandom", O_RDONLY|O_NOCTTY|O_NONBLOCK|O_CLOEXEC) = 3 

Почему perl и ruby ​​открывают его в разных режимах?

One Solution collect form web for “почему perl, ruby ​​use / dev / urandom”

Попробуйте найти «Отказ в обслуживании через атаки алгоритмической сложности».

Короче говоря, если скрипт Perl принимает внешний вход (из файла, сети и т. Д.) И сохраняет эти данные в хэше, злоумышленник, который может влиять на данные, может использовать алгоритм хеширования для ухудшения хэшей (O (1) поиска) в связанных списков (O (N)). Чтобы защитить от этого типа атаки, определенные параметры алгоритма хеширования рандомизируются при запуске программы, так что злоумышленник не может построить последовательность хеш-ключей, которые вызовут проблему.

Это явно не относится к Perl. Любая программа, которая использует алгоритм хеширования, потенциально уязвима для этого типа атаки.

  • Есть ли переводчик Ruby или Python для Lego Mindstorm?
  • Python эквивалент Ruby's 'method_missing'
  • Случай использования Ruby для nil, эквивалентный Python Нет или JavaScript не определен
  • Ruby эквивалент Python's help ()?
  • Разница между утверждением и функцией
  • Как стать продуктивным с помощью Vim / Emacs
  • Альтернативы php для встроенного веб-программирования?
  • Python эквивалент Ruby's StringScanner?
  •  
    Interesting Posts for Van-Lav

    Получить переменную из URL-адреса в маршруте Flask

    ошибка с добавлением к файлу и использование массива

    Как построить данные по конкретным датам на оси x, используя matplotlib

    Python DBUS SESSION_BUS – зависимость X11

    Python urllib над TOR?

    присвоение обернутому фрагменту массива numpy

    Нет вывода на печать из дочерней многопроцессорности. Процесс, если программа не сработает

    sqlalchemy: alembic bulk insert failed: объект 'str' не имеет атрибута '_autoincrement_column'

    Скучные факториалы в python

    Структура папок Python gzip при застегивании одного файла

    Вычисление N граммов с использованием Python

    Непредсказуемые результаты os.path.join в окнах

    Как отсортировать похожие значения в отсортированном списке (на основе второго значения) кортежей на основе другого значения (третьего значения) в кортеже в порядке убывания

    Как создать собственный класс в Python

    Поиск почтового ящика IMAP для сообщений от отправителя specefic и использования wild cards?

    Python - лучший язык программирования в мире.