<?php # Generate pronounceable and thereby easier remembered, # not-quite-so random passwords despite of their length. $charset = array( # consonants (some left out for clarity or better # pronounciation) array('b', 'd', 'f', 'g', 'h', 'k', 'l', 'm', 'n', 'p', 'r', 's', 't', 'v', 'w', 'z'), # vowels array('a', 'e', 'i', 'o', 'u')); function gen_mnemonic_password($letters=8, $digits=2) { global $charset; $pw = array(); foreach (range(0, $letters - 1) as $i) $pw[] = $charset[$i % 2][array_rand($charset[$i % 2])]; foreach (range(1, $digits) as $i) $pw[] = rand(0, 9); return implode('', $pw); } # usage echo gen_mnemonic_password(); ?>