Password Generator
Transcript
Password Generator
Generatore di Password program PassGen(input,output,Passlist); label z,z1; var i,i1,i2,i3,i4,i5,i6,i7,i8,min,max,numcar:integer; sc:char; f:text; s,t,u:string; A:array[1..255] of char; begin writeln('===================================================== =========================='); writeln('Generatore di Password v.1.0 -');writeln; writeln('by -');writeln; writeln('Santiboom -'); writeln('===================================================== =========================='); writeln; s:='c:\windows\desktop\passlist.txt'; assign(f,s); rewrite(f); flush(f); writeln('Seleziona una opzione:');writeln; writeln('1) Stampa tutte la permutazioni dei caratteri con ripetizione'); writeln('2) Stampa tutte le permutazioni dei caratteri senza ripetizione');writeln; writeln('N.B. Entrambe le opzioni permettono di inserire una stringa iniziale cos il'); writeln(' risultato sar… del tipo: "stringa"+"permutazione". '); writeln('-------------------------------------------------------------------------------');writeln; z: write('Scegli: '); readln(sc); writeln; if (sc>'2') or (sc<'1') then begin writeln('Devi premere "1" o "2"!'); writeln; goto z; end; if sc='1' then begin write('Inserisci la stringa con cui iniziare (invio per non metterla): '); readln(u); writeln; write('Inserisci i caratteri particolari da considerare (invio per non metterli): '); read(t); writeln; if t='' then begin writeln('Per definire il range di caratteri da utilizzare, scrivi il codice ascii del'); write('carattere iniziale (es. 0-->48, 9-->57, a-->97, z-->122): '); readln(min);writeln; write('e quello del carattere finale: '); readln(max);writeln; write('I ',max-min+1,' caratteri verranno presi k a k scrivi il valore di k: '); readln(numcar);writeln; writeln;writeln; for i:=min to max do A[i]:=chr(i); end else begin min:=1; Santi Strati 1 Generatore di Password write('I ',length(t),' caratteri verranno presi k a k scrivi il valore di k: '); readln(numcar); writeln; max:=length(t); for i:=min to max do A[i]:=t[i] end; end else if sc='2' then goto z1; writeln('Sono stati scelti i seguenti caratteri: ');writeln; for i:=min to max do write(i,'--->',A[i],' ');writeln;writeln; if numcar>9 then begin writeln('Non Š possibile l''elaborazione per un numero cos elevato di caratteri!'); writeln(f,'Non e'' possibile l''elaborazione per un numero cosi'' elevato di caratteri!'); writeln; end else begin case numcar of 1 : for i:=min to max do writeln(f,u,A[i]); 2 : for i:=min to max do for i1:=min to max do writeln(f,u,A[i],A[i1]); 3 : for i:=min to max do for i1:=min to max do for i2:=min to max do writeln(f,u,A[i],A[i1],A[i2]); 4 : for i:=min to max do for i1:=min to max do for i2:=min to max do for i3:=min to max do writeln(f,u,A[i],A[i1],A[i2],A[i3]); 5 : for i:=min to max do for i1:=min to max do for i2:=min to max do for i3:=min to max do for i4:=min to max do writeln(f,u,A[i],A[i1],A[i2],A[i3],A[i4]); 6 : for i:=min to max do for i1:=min to max do for i2:=min to max do for i3:=min to max do for i4:=min to max do for i5:=min to max do writeln(f,u,A[i],A[i1],A[i2],A[i3],A[i4],A[i5]); 7 : for i:=min to max do for i1:=min to max do for i2:=min to max do for i3:=min to max do for i4:=min to max do for i5:=min to max do for i6:=min to max do writeln(f,A[i],u,A[i1],A[i2],A[i3],A[i4],A[i5],A[i6]); 8 : for i:=min to max do for i1:=min to max do for i2:=min to max do for i3:=min to max do for i4:=min to max do for i5:=min to max do for i6:=min to max do for i7:=min to max do writeln(f,u,A[i],A[i1],A[i2],A[i3],A[i4],A[i5],A[i6],A[i7]); 9 : for i:=min to max do for i1:=min to max do for i2:=min to max do for i3:=min to max do for i4:=min to max do for i5:=min to max do for i6:=min to max do for i7:=min to max do for i8:=min to max do writeln(f,u,A[i],A[i1],A[i2],A[i3],A[i4],A[i5],A[i6],A[i7],A[i8]); end; writeln('File ''Passlist'' pronto sul desktop!');writeln; i7:=max-min+1; for i:=1 to numcar-1 do i7:=i7*(max-min+1); writeln('Il numero di permutazoni con ripetizione generate di ',max-min+1,' caratteri presi '); writeln(numcar,' a ',numcar,' Š: ',i7); writeln('--------------------------------------------------------------------------------'); close(f); end; exit; Santi Strati 2 Generatore di Password z1: begin write('Inserisci la stringa con cui iniziare (invio per non metterla): '); readln(u); writeln; write('Inserisci i caratteri particolari da considerare: '); read(t); writeln; min:=1; numcar:=length(t); if numcar>9 then begin writeln('Non Š possibile l''elaborazione per un numero cos elevato di caratteri!'); writeln(f,'Non e'' possibile l''elaborazione per un numero cosi'' elevato di caratteri!'); writeln; close(f); exit; end else begin max:=numcar; for i:=min to max do A[i]:=t[i]; case numcar of 1 : for i:=min to max do writeln(f,u,A[i]); 2 : for i:=min to max do for i1:=min to max do if (i<>i1) then writeln(f,u,A[i],A[i1]); 3 : for i:=min to max do for i1:=min to max do for i2:=min to max do if (i<>i1) and (i<>i2) and (i1<>i2) then writeln(f,u,A[i],A[i1],A[i2]); 4 : for i:=min to max do for i1:=min to max do for i2:=min to max do for i3:=min to max do if (i<>i1) and (i<>i2) and (i<>i3) and (i1<>i2) and (i1<>i3) and (i2<>i3) then writeln(f,u,A[i],A[i1],A[i2],A[i3]); 5 : for i:=min to max do for i1:=min to max do for i2:=min to max do for i3:=min to max do for i4:=min to max do if (i<>i1) and (i<>i2) and (i<>i3) and (i<>i4) and (i1<>i2) and (i1<>i3) and (i1<>i4) and (i2<>i3) and (i2<>i4) and (i3<>i4) then writeln(f,u,A[i],A[i1],A[i2],A[i3],A[i4]); 6 : for i:=min to max do for i1:=min to max do for i2:=min to max do for i3:=min to max do for i4:=min to max do for i5:=min to max do if (i<>i1) and (i<>i2) and (i<>i3) and (i<>i4) and (i<>i5) and(i1<>i2) and (i1<>i3) and (i1<>i4) and (i1<>i5) and (i2<>i3) and (i2<>i4) and (i2<>i5) and (i3<>i4) and (i3<>i5) and (i4<>i5) then writeln(f,u,A[i],A[i1],A[i2],A[i3],A[i4],A[i5]); 7 : for i:=min to max do for i1:=min to max do for i2:=min to max do for i3:=min to max do for i4:=min to max do for i5:=min to max do for i6:=min to max do if (i<>i1) and (i<>i2) and (i<>i3) and (i<>i4) and (i<>i5) and(i<>i6) and (i1<>i2) and (i1<>i3) and (i1<>i4) and (i1<>i5) and (i1<>i6) and (i2<>i3) and (i2<>i4) and (i2<>i5) and (i2<>i6) and (i3<>i4) and (i3<>i5) and (i3<>i6) and (i4<>i5) and (i4<>i6) and (i5<>i6) then writeln(f,u,A[i],A[i1],A[i2],A[i3],A[i4],A[i5],A[i6]); 8 : for i:=min to max do for i1:=min to max do for i2:=min to max do for i3:=min to max do for i4:=min to max do for i5:=min to max do for i6:=min to max do for i7:=min to max do if (i<>i1) and (i<>i2) and (i<>i3) and (i<>i4) and (i<>i5) and(i<>i6) and (i<>i7) and (i1<>i2) and (i1<>i3) and (i1<>i4) and (i1<>i5) and Santi Strati 3 Generatore di Password (i1<>i6) and (i1<>i7) and (i2<>i3) and (i2<>i4) and (i2<>i5) and (i2<>i6) and (i2<>i7) and (i3<>i4) and (i3<>i5) and (i3<>i6) and (i3<>i7) and (i4<>i5) and (i4<>i6) and (i4<>i7) and (i5<>i6) and (i5<>i7) and (i6<>i7) then writeln(f,u,A[i],A[i1],A[i2],A[i3],A[i4],A[i5],A[i6],A[i7]); 9 : for i:=min to max do for i1:=min to max do for i2:=min to max do for i3:=min to max do for i4:=min to max do for i5:=min to max do for i6:=min to max do for i7:=min to max do for i8:=min to max do if (i<>i1) and (i<>i2) and (i<>i3) and (i<>i4) and (i<>i5) and(i<>i6) and (i<>i7) and (i<>i8) and (i1<>i2) and (i1<>i3) and (i1<>i4) and (i1<>i5) and (i1<>i6) and (i1<>i7) and (i1<>i8) and (i2<>i3) and (i2<>i4) and (i2<>i5) and (i2<>i6) and (i2<>i7) and (i2<>i8)and (i3<>i4) and (i3<>i5) and (i3<>i6) and (i3<>i7) and (i3<>i8) and (i4<>i5) and (i4<>i6) and (i4<>i7) and (i4<>i8) and (i5<>i6) and (i5<>i7) and (i5<>i8)and (i6<>i7) and (i6<>i8) and (i7<>i8) then writeln(f,u,A[i],A[i1],A[i2],A[i3],A[i4],A[i5],A[i6],A[i7],a[i8]); end; writeln('File ''Passlist'' pronto sul desktop!');writeln; for i:=min to max do begin i7:=1; for i6:=i downto 1 do i7:=i7*i6; end; writeln('Il numero di permutazoni senza ripetizione generate di ',max,' caratteri Š ',i7); writeln('--------------------------------------------------------------------------------'); end; end; close(f); end. Santi Strati 4