Guest User

Test1

a guest
Dec 26th, 2016
507
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.25 KB | None | 0 0
  1. unit Main;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, StdCtrls, umd5, ExtCtrls, jpeg, Buttons;
  8.  
  9. type
  10.   TKgnForm = class(TForm)
  11.     RegNumberEdit: TEdit;
  12.     NameEdit: TEdit;
  13.     TrialCodeEdit: TEdit;
  14.     UnlockCodeEdit: TEdit;
  15.     TrialReset: TLabel;
  16.     UnlockCode: TLabel;
  17.     RegNumber: TLabel;
  18.     Name: TLabel;
  19.     BackGrnd: TImage;
  20.     procedure NameEditChange(Sender: TObject);
  21.   private
  22.     { Private declarations }
  23.   public
  24.     { Public declarations }
  25.   end;
  26.  
  27. var
  28.   KgnForm: TKgnForm;
  29. const
  30.   value = '25745-byjimminy-582552';
  31.   value2 = '5821354-cadizzaboom-48548';
  32. implementation
  33.  
  34. {$R *.dfm}
  35.  
  36. procedure TKgnForm.NameEditChange(Sender: TObject);
  37. var
  38.   Concat,Md5hash,trim,split,Concat2,Md5hash2,trim2,split2:string;
  39. begin
  40.   TrialCodeEdit.text:='';
  41.   UnlockCodeEdit.text:='';
  42.   if (length(RegNumberEdit.text) = 12) and (length(NameEdit.text) >= 3)
  43. then
  44.   begin
  45. ///////Trial reset generator//////////
  46.     Concat:=RegNumberEdit.Text+NameEdit.Text+value; //сформировали единую строку из серийного номера, имени и константы
  47.     Md5hash:=md5(Concat); //получили от нее md5 хэш
  48.     Trim:=AnsiUpperCase(Copy(Md5hash, 1,19)+(Copy(Md5hash, 32,1))); //вычленили их хэша строку длиной 20 символов = 19 с начала + 1 с конца и перевели в верхний регистр
  49.     Split:=Copy(Trim,1,4)+'-'+Copy(Trim,5,4)+'-'+Copy(Trim,9,4)+'-'+Copy(Trim,13,4)+'-'+Copy(Trim,17,4); //разделили строку на блоки с дефисами через каждые 4 символа
  50.     TrialCodeEdit.Text:=split; //TrialCodeEdit содержит конечный ключ для сброса триала
  51. ///////Trial reset generator//////////
  52.  
  53. ///////Unlock code generator//////////
  54.     Concat2:=RegNumberEdit.Text+NameEdit.Text+value2;
  55.     Md5hash2:=md5(Concat2);
  56.     Trim2:=AnsiUpperCase(Copy(Md5hash2, 1,19)+(Copy(Md5hash2, 32,1)));
  57.     Split2:=Copy(Trim2,1,4)+'-'+Copy(Trim2,5,4)+'-'+Copy(Trim2,9,4)+'-'+Copy(Trim2,13,4)+'-'+Copy(Trim2,17,4);
  58.     UnlockCodeEdit.Text:=split2;
  59. ///////Unlock code generator//////////
  60.   end
  61.   else
  62.     exit;
  63. end;
  64. end.
Advertisement
Add Comment
Please, Sign In to add comment