Y si necesitas claves fonéticamente mas agradables, pero mucho menos seguras, puedes usar algo como esto. Siempre se podrá aumentar la seguridad, haciendo contraseñas mas largas:
Código Delphi
[-]
function PassGen(Str: String): String;
const
Alfa1 = 'aeiou';
Alfa2 = 'bcdfgjklmnprstvxyz';
var
i: Integer;
begin
Result:= EmptyStr;
Str:= CalcHash2(Str,haMd5);
for i:= 0 to (Length(Str) div 4) - 1 do
if Odd(i) then
Result:= Result +
Alfa1[(StrToInt('$'+Copy(Str,(i*4)+1,4)) mod Length(Alfa1))+1]
else
Result:= Result +
Alfa2[(StrToInt('$'+Copy(Str,(i*4)+1,4)) mod Length(Alfa2))+1];
end;