Простите, но вы говорите ерунду. Очень часто СИММЕТРИЧНЫЕ системы строятся на хэш-функциях, которые выступают в роли гаммы. Именно из за того что они обеспечивают хороший лавинный эффект и высокую скорость вычисление. Кроме того, бывает что и блочные алгоритмы используются в качестве хэш-функций. Читайте про режим генерации гаммы.
FanatPHP, Почему? С моей точки зрения мой ответ 100% решает задачу, поставленную автором вопроса. Учить его правильному подходу я не собираюсь, так как не знаю нужно ли ему это или нет. Да и для этого есть курсы авторы которых за это деньги получают, а я тут на голом энтузиазме. :)
Михаил, принципиальное отличие в том, что mt_rand использует вихрь Мерсена, то есть является рекуррентным. Именно поэтому его нельзя использовать в качестве криптографического примитива. Однако он даёт статистически корректное случайное распределение. random_int же использует "физические" датчики случайных чисел. Установить зависимость одного элемента от другого не возможно (как раз то, что и нужно для криптографии), но статистика распределений может быть нарушена. Кроме того для random_int нужны установленные в системе драйверы этих самых датчиков.
$name = scandir($path);
Тут, видимо, переменная должна называться
$names