Функция генерирующая случайный пароль на php
Очень часто при создании сайтов возникает необходимость сгененрировать случайным образом пароль, название файла или что либо еще. Для этого можно воспользоватся несколькоми методами, о некоторых из них я расскажу в данной статье. Метод первый, использование случайно сгенерированного пароля нужной длинны, с возможностью выбора нужных символов и длинны пароля. Для этого нам потребуется небольшая функция.
function genPass($len,$sp){ $pass = ""; $ch = array('digits' => array(0,1,2,3,4,5,6,7,8,9), 'lower' => array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'), 'upper' => array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z')); if($sp){ $ch['spec'] = array('!','@','#','$','%','^','&','*','_','+'); } $chTypes = array_keys($ch); $numTypes = count($chTypes) - 1; for($i=0; $i<$len; $i++){ $chType = $chTypes[mt_rand(0, $numTypes)]; $pass .= $ch[$chType][mt_rand(0, count($ch[$chType]) - 1 )]; } return $pass; }
Теперь достаточно вызвать функцию, указав в ней первым парамером количество символов и нужно ли нам или не нужно, использовать спецсимволы true | false. И мы получим набор случайных символов, нужной нам длинны.
echo genPass(10,false); // Выведет случайную последовательность из 10 символов
Второй метод более простой, но и менее гибкий в настройке, он позволяет сгенерировать псевдо-случайный пароль, длинной до 32 символов (в стандартном варианте. если нужны более длинные строки, можно использовать несколько хэшей). Для этого мы воспользуемся комбинацией из нескольких функций и создадим хэш MD5 случайно сгенерированной строки, укоротив его до нужного размера.
echo substr(md5(uniqid(rand(),true)), 0, 15); // Выведет случайную последовательность из 15 символов
Таким образом можно создавать случайные или псевдо-случайные пароли и т.д.