Często w naszych systemach potrzebujemy wygenerować hasło/hasła.
Napisałem przydatną funkcję generującą hasło – używam jej przy generowaniu haseł generatorem http://aljandor.unixstorm.org/pwgen/ oraz w innych miejscach.
/** * generowanie hasła * dostępne $zestawy znaków: 'l' - małe listery 'u' - duże litery 'd' - cyfry 's' - znaki specjalne * @param int $dlugosc * @param array $zestawy */ function generujHaslo($dlugosc=25, $zestawy=array('l','u','d','s')) { $sets = array(); if(in_array('l', $zestawy) !== false) $sets[] = 'abcdefghjkmnpqrstuvwxyz'; if(in_array('u', $zestawy) !== false) $sets[] = 'ABCDEFGHJKMNPQRSTUVWXYZ'; if(in_array('d', $zestawy) !== false) $sets[] = '23456789'; if(in_array('s', $zestawy) !== false) $sets[] = '!@#$%&*?'; $wszystkie = ''; $haslo = ''; foreach($sets as $set) { $haslo.= $set[array_rand(str_split($set))]; $wszystkie .= $set; } $wszystkie = str_split($wszystkie); for($i = 0; $i < $dlugosc - count($sets); $i++) { $haslo .= $wszystkie[array_rand($wszystkie)]; } $password = str_shuffle($haslo); return $haslo; }
przykładowe wywołanie:
echo generujHaslo(25, array('l', 'u','d','s'));