1. Pascal / Говнокод #21651

    −66

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    function RandomStr(Len:Integer; Opts:TRndSType=[rtUpperCase]):string;
    var
      I,D:Integer;
      RS,RE, X:Integer;
      S:string;
      Tmp:string;
    begin
      Result:='';
      I:=0;
      S:='abcdefjhijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ';
      Randomize;
      if rtLowerCase in Opts then
      begin
        RS:=1;
        if not (rtUpperCase in Opts) then
        RE:=27
        else
        RE:=53
      end;
      if rtUpperCase in Opts then
      begin
        if not (rtLowerCase in Opts) then
        RS:=27;
        RE:=53
      end;
      X:=Len*2;
      while Length(Tmp) <> X do
      begin
        Randomize;
        Tmp:=Tmp+S[RandomRange(RS,RE)];
      end;
      Inc(X);
      if rtDigits in Opts then
      begin
        for I:=1 to Len do
        Insert(IntToStr(RandomRange(0,10)),Tmp,RandomRange(1, X));
      end;
      Result:=Copy(Tmp,RandomRange(1,Len),Len);
    end;

    Владыка криптостойких паролей.
    Код мой.

    Запостил: rotretS, 06 Ноября 2016

    Комментарии (23) RSS

    Добавить комментарий