I've a "mnemonic" password generation function that goes something like this:
function Mnemonic($mnemonic)
{
$result = null;
$charset = array(str_split('aeiou', 1), str_split('bcdfghjklmnpqrstvwxyz', 1));
for ($i = 1; $i <= $mnemonic; $i++)
{
$result .= $charset[$i % 2][array_rand($charset[$i % 2])];
}
return $result;
}
Basically this generates a string with $mnemonic
length where every odd character is a consonant and every even character is a vowel. While I understand this reduces the password complexity it's usually much more easier to remember. Now I want to improve it by generating strings that are easy to type.
For instance, while a *nix newbie I always prefer RHEL based distributions over Debian ones, the main reason is the ease of typing yum
versus the ease of typing apt[-get]
, just try it for yourself.
How should I implement the logic to generate strings that are easy to type on QWERTY keyboards?