Buenos días,
he estado haciendo pruebas, y es espectacular.
Mil gracias, va de fábula.
Le he hecho unas mínimas variaciones:
Código Delphi
[-]
function PassGen(Str: String): String;
const
Alfa1 = 'AEIOU';
Alfa2 = 'BCDFGHJKLMNPQRSTVWXYZ';
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;
Para tener el resulta en mayúsculas, que será lo más cómodo para mandarlo al usuario por sms. De todos modos si se quiere un poco más compleja la contraseña, alternando mayúsculas y minúsculas, sólo hace falta unir las dos cadenas Alfa1 entresí y las dos Alfa2 entre sí. Aunque en mi caso, por ahora no lo implementaré.
Muchas gracias a todos por su aporte, y sobretodo a domingo
Saludos