SafeGroup
[Lazarus Delphi] Generator haseł/kodów jednorazowych - Wersja do druku

+- SafeGroup (https://safegroup.pl)
+-- Dział: Forum ogólne (https://safegroup.pl/forum-6.html)
+--- Dział: Programowanie - języki i technologie (https://safegroup.pl/forum-34.html)
+---- Dział: Delphi i Pascal (https://safegroup.pl/forum-36.html)
+---- Wątek: [Lazarus Delphi] Generator haseł/kodów jednorazowych (/thread-11292.html)



[Lazarus Delphi] Generator haseł/kodów jednorazowych - A11-11Q - 28.12.2017

Wrzucam przykładowy kod realizujący generowanie losowe kodów/haseł jednorazowych... można go rozwijać lub poprawiać Wink


[Obrazek: kodyjednorazowe.jpg]


Kod:
procedure TForm1.btnGenerujKodyClick(Sender: TObject);
var
  Znak, Haslo: String;
  i,n: Integer;

begin;
  Memo1.Clear;

  Znak := 'Qq1!Ww2Ee3Rr4$Tt5Yy6Uu7&Ii8Oo90PpAaSsDdFfGgHhJjKkLlZzXxCcVvBbNnMm';

  Randomize;
  for i:= 1 to StrToIntDef(edtIloscKodow.Text,1)do
  begin
    btnZapiszDoPliku.Enabled := FALSE;
    for n:= 1 to 7 do // <----Czesc zmienna hasla to 7 znakow
        begin
          Haslo := Haslo + Znak[Random(Length(Znak))+1];
        end;
    Memo1.Lines.Add(edtCzescStalaKodu.Text + Haslo);
    Haslo := '';
    Application.ProcessMessages;
  end;
  btnZapiszDoPliku.Enabled := TRUE;
  btnZapiszDoPliku.SetFocus; // zapisz do pliku
end;



RE: [Lazarus Delphi] Generator haseł/kodów jednorazowych - Konto usunięte - 28.12.2017

Też kiedyś zrobiłem generator haseł, tyle że w PHP.
Teraz wiem, że takie podejście jest... złe... Wink

Dlaczego?
Bo z tego co widzę takie Radom() nie jest kryptograficznie bezpieczne.

Będę też czepliwy ale.. Length(Znak) warto przenieść poza pętlę, bo teraz wykonuje się w każdej jej przebiegu, choć tak naprawdę długość jest potrzebna tylko raz Wink


RE: [Lazarus Delphi] Generator haseł/kodów jednorazowych - Tajny Współpracownik - 28.12.2017

Nooo ten Randomize to chyba z Pascala pochodzi Cool