home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 February / Chip_2003-02_cd1.bin / ctenari / Hytha / HCrypt.exe / SR_KOP.RAR / SRC / Unit2.pas < prev   
Pascal/Delphi Source File  |  2002-10-31  |  2KB  |  84 lines

  1. unit Unit2;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, StdCtrls, DCPcrypt2, DCPsha1, jpeg, ExtCtrls;
  8.  
  9. type
  10.   TForm2 = class(TForm)
  11.     Label1: TLabel;
  12.     Label2: TLabel;
  13.     Label3: TLabel;
  14.     Label4: TLabel;
  15.     DCP_sha11: TDCP_sha1;
  16.     Image1: TImage;
  17.     procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  18.       Y: Integer);
  19.     procedure FormCreate(Sender: TObject);
  20.   private
  21.     { Private declarations }
  22.   public
  23.     { Public declarations }
  24.   end;
  25.  
  26. const RNDL=1024;
  27. var
  28.   Form2: TForm2;
  29.   RBuf2:Array[0..RNDL+1]of Byte;
  30.   RPL:LongInt;
  31.   LastX,LastY:Integer;
  32.  
  33. implementation
  34.  
  35. {$R *.dfm}
  36.  
  37.  
  38. procedure TForm2.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  39.   Y: Integer);
  40.  
  41. function HSH(Co:String):Byte;
  42. var Pom:Byte;
  43.     H:Array[0..1024] of Byte;
  44.     I:Word;
  45. begin
  46.  Pom:=0;
  47.  
  48.  with Form2.DCP_sha11 do begin
  49.    Init;
  50.    Update(Co[1],Length(Co));
  51.    Final(H);
  52.    for I:=0 to ((HashSize div 8)-1) do
  53.      Pom:=Pom Xor H[I];
  54.  end;
  55.  HSH:=Pom;
  56. end;
  57.  
  58. function PL(Co:String):String;
  59. var Pom:String;
  60. begin
  61.  Pom:=Co;
  62.  while Length(Pom)<3 do Pom:='0'+Pom;
  63.  PL:=Pom;
  64. end;
  65.  
  66. begin
  67.  Label2.Caption:=PL(IntToStr((100*RPL) div RNDL));
  68. //// RND
  69.  RBuf2[RPL]:=(X+Y) xor (X*Y) xor (X-Y) xor Random($FF) xor (LastX-X) xor (LastY-Y) xor HSH(DateTimeToStr(Now));
  70. //// RND
  71.  RPL:=RPL+1;if RPL>RNDL then RPL:=RNDL;
  72.  LastX:=X;
  73.  LastY:=Y;
  74. end;
  75.  
  76. procedure TForm2.FormCreate(Sender: TObject);
  77. begin
  78.  Randomize;
  79.  LastX:=Random(65536);
  80.  LastY:=Random(65536);
  81. end;
  82.  
  83. end.
  84.