...Generate random passwords (advanced) ?

Author: Marcelo Castro

Category: Strings

//Extended version of SpeakAblePassWord routine
//modified by Marcelo Castro
//
//syntax:   GeneratePass(number_of_syllables,decimal_part)


function GeneratePass(syllables, numbers: Byte): string;

  function Replicate(Caracter: string; Quant: Integer): string;
  var 
    
I: Integer;
  begin
    
Result := '';
    for I := 1 to Quant do
      
Result := Result + Caracter;
  end;
const
  
conso: array [0..19] of Char = ('b', 'c', 'd', 'f', 'g', 'h', 'j',
    'k', 'l', 'm', 'n', 'p', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z');
  vocal: array [0..4] of Char = ('a', 'e', 'i', 'o', 'u');
var
  
i: Integer;
  si, sf: Longint;
  n: string;
begin
  
Result := '';
  Randomize;

  if syllables <> 0 then
    for 
i := 1 to syllables do
    begin
      
Result := Result + conso[Random(19)];
      Result := Result + vocal[Random(4)];
    end;

  if numbers = 1 then Result := Result + IntToStr(Random(9))
  else if numbers >= 2 then
  begin
    if 
numbers > 9 then numbers := 9;
    si     := StrToInt('1' + Replicate('0', numbers - 1));
    sf     := StrToInt(Replicate('9', numbers));
    n      := FloatToStr(si + Random(sf));
    Result := Result + Copy(n, 0,numbers);
  end;
end;

{-----------------------------------------------
  utilization:
  ============
         ex: GeneratePass(3,2)   =>   'pavoco53'

         ex: GeneratePass(3,4)   =>   'yegise7955'

         ex: GeneratePass(5,0)   =>   'yagotoxa'

         ex: GeneratePass(0,9)   =>   '568597284'
------------------------------------------------}

 

printed from
www.swissdelphicenter.ch
developers knowledge base