whats new ¦  programming tips ¦  indy articles ¦  intraweb articles ¦  informations ¦  links ¦  interviews
 misc ¦  tutorials ¦  Add&Win Game

Tips (1541)

Database (90)
Files (137)
Forms (107)
Graphic (114)
IDE (21)
Indy (5)
Internet / LAN (130)
IntraWeb (0)
Math (76)
Misc (126)
Multimedia (45)
Objects/
ActiveX (51)

OpenTools API (3)
Printing (35)
Strings (83)
System (266)
VCL (242)

Top15

Tips sort by
component


Search Tip

Add new Tip

Add&Win Game

Advertising

17 Visitors Online


 
...Generate random passwords (advanced) ?
Autor: Marcelo Castro
[ Print tip ]  

Tip Rating (8):  
     


//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'
------------------------------------------------}


 

Rate this tip:

poor
very good


Copyright © by SwissDelphiCenter.ch
All trademarks are the sole property of their respective owners