Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program generatorHasel;
- uses crt;
- const
- MAXDLUGOSC = 8;
- MAXPRZYKLADOW = 10;
- var
- a, b : byte;
- t : text;
- dlHasla : integer;
- password : string;
- dlugosci : array [1..MAXDLUGOSC] of byte;
- function przesun(c : char) : char;
- var
- krok, flaga : byte;
- zwrot, przesuniete : integer;
- begin
- flaga := 0;
- REPEAT
- krok := random(16);
- zwrot := random(2);
- if zwrot = 0 then przesuniete := ord(c) + krok * (-1)
- ELSE przesuniete := ord(c) + krok;
- if(przesuniete >= 33) AND (przesuniete <= 125) AND (chr(przesuniete) <> '"') then flaga := 1;
- UNTIL flaga = 1;
- przesun := chr(przesuniete);
- end;
- function mieszaj(s : string) : string;
- var
- a, dlStr, ilProb, odKonca : byte;
- tmp : char;
- kol : string;
- begin
- dlStr := Length(s);
- for a := 1 to dlStr - 1 do begin
- tmp := przesun(s[a]);
- s[a] := przesun(s[a + 1]);
- s[a + 1] := tmp;
- end;
- ilProb := dlStr div 2;
- if dlStr mod 2 = 1 then ilProb := ilProb + 1;
- kol := '';
- for a := 1 to ilProb do begin
- odKonca := dlStr - a + 1;
- if a <> odKonca then kol := kol + s[a] + s[odKonca] ELSE kol := kol + s[a];
- end;
- mieszaj := kol;
- end;
- function tworzHaslo(var k : byte) : string;
- var
- a, r : byte;
- kol : string;
- begin
- kol := '';
- for a := 1 to k do begin
- r := random(93) + 33;
- kol := kol + chr(r);
- end;
- tworzHaslo := mieszaj(kol);
- end;
- function powielacz(znak : char; liczbaWystapien : byte) : string;
- var
- a : byte;
- kol : string;
- begin
- kol := '';
- for a := 1 to liczbaWystapien do begin
- kol := kol + znak;
- end;
- powielacz := kol;
- end;
- begin
- clrscr;
- randomize;
- write('Pozadana dlugosc hasla: ');readln(dlHasla);
- while ((4 > dlHasla) OR (255 < dlHasla)) do begin
- clrscr;
- writeln('Dopuszczalny zakres dlugosci hasla to <0,255>!');
- write('Podaj prawidlowa dlugosc hasla: ');readln(dlHasla);
- end;
- dlugosci[2] := 8;
- dlugosci[3] := 10;
- dlugosci[4] := 16;
- dlugosci[5] := 20;
- dlugosci[6] := 32;
- dlugosci[7] := 64;
- dlugosci[8] := 128;
- for a := 2 to MAXDLUGOSC do begin
- if dlHasla = dlugosci[a] then dlugosci[a] := 0;
- end;
- dlugosci[1] := dlHasla;
- assign(t, 'passwords.txt');
- rewrite(t);
- writeln(t, 'Lista 92 używanych znaków:');
- for a:=33 to 125 do begin
- if (chr(a) <> ' ') then begin
- write(t, a);
- if a < 100 then write(t, ' ');
- writeln(t, ' - ', chr(a));
- end;
- end;
- writeln(t, powielacz('*', 8));
- for a:=1 to MAXDLUGOSC do begin
- if(dlugosci[a] <> 0) then begin
- write(t, 'Hasła o długości ',dlugosci[a],' znaków:');
- for b := 1 to MAXPRZYKLADOW do begin
- writeln(t, '');
- password := tworzHaslo(dlugosci[a]);
- write(t, password);
- end;
- writeln(t, '');
- writeln(t, powielacz('~', dlugosci[a]));
- end;
- end;
- close(t);
- textcolor(red);
- textbackground(7);
- write('Hasla zostaly zapisane w pliku passwords.txt');
- textbackground(0);
- textcolor(7);
- readkey;end.
Advertisement
Add Comment
Please, Sign In to add comment