📄 emluator.pas
字号:
unit Emluator;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons, StrUtils, ComCtrls;
type
TFormEmluator = class(TForm)
Label1: TLabel;
Label23: TLabel;
page: TPageControl;
IMUTATE: TTabSheet;
Panel3: TPanel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Label24: TLabel;
Edit13: TEdit;
Edit14: TEdit;
BitBtn1: TBitBtn;
Edit15: TEdit;
Edit16: TEdit;
BitBtn2: TBitBtn;
Edit17: TEdit;
BitBtn3: TBitBtn;
Panel1: TPanel;
Label2: TLabel;
Label7: TLabel;
Label6: TLabel;
Label8: TLabel;
Label4: TLabel;
Label3: TLabel;
Label11: TLabel;
Edit1: TEdit;
Edit6: TEdit;
Edit5: TEdit;
Edit7: TEdit;
Edit3: TEdit;
Button2: TButton;
Button3: TButton;
Edit2: TEdit;
Button1: TButton;
Panel2: TPanel;
Label5: TLabel;
Label10: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Edit4: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Button4: TButton;
Button5: TButton;
Edit11: TEdit;
Edit12: TEdit;
ControlBar1: TControlBar;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormEmluator: TFormEmluator;
implementation
uses aesunit;
{$R *.dfm}
//*************************************************************************************************************
//*************************************************************************************************************
//仿真程序各按钮程序
//
procedure TFormEmluator.Button1Click(Sender: TObject);
var
i:integer;
ss:string;
begin
ss:='';
// k:=Random(100000000);
ss:=ss+IntToStr(Random(100000000));
for i:=0 to 6
do ss:=ss+IntToStr(Random(100000000));
Edit2.Text:=copy(ss,1,32);
Edit10.Text:=Edit2.Text;
end;
procedure TFormEmluator.Button2Click(Sender: TObject);
var
l1:integer;
// st1,st2,st3:string;
begin
l1:=StrToInt(Edit6.Text);
if ((l1=12) or (l1=16) or (l1=20)) then
begin
Edit3.Text := aes(copy(Edit5.Text, 1,l1), copy(Edit2.Text,1,32), StrToInt(Edit7.text)); //Rounds(Edit1.Text, 12, Edit3.Text,0);
Edit9.Text:=Edit3.Text;
end;
if l1=32 then
begin
Edit3.Text := aes(copy(Edit1.Text,1,32),copy(Edit2.Text,1,l1),2);
Edit9.Text:=Edit3.Text;
end;
end;
procedure TFormEmluator.Button3Click(Sender: TObject);
var
l1,l2:integer;
begin
l1:=StrToInt(Edit6.Text);
if l1=12 then
begin
l2:=l1-6;
Edit5.Text:=AES(Copy(Edit1.Text,1,6),Copy(Edit1.Text,7,6),2)+copy(Edit1.Text,7,l2);
end
else if ((l1=16) or (l1=20)) then
begin
l2:=l1-8;
Edit5.Text:=AES(Copy(Edit1.Text,1,8),Copy(Edit1.Text,9,l2),2)+copy(Edit1.Text,9,l2);
end;
end;
procedure TFormEmluator.Button4Click(Sender: TObject);
begin
Edit4.Text:=InAES(copy(Edit9.Text,1,StrToInt(Edit11.text)), copy(Edit10.Text,1,32), StrToInt(Edit12.text));
end;
procedure TFormEmluator.Button5Click(Sender: TObject);
var
l1,l2:integer;
begin
l1:=StrToInt(Edit11.Text);
if l1=12 then
begin
l2:=l1-6;
Edit8.Text:=InAES(Copy(Edit4.Text,1,6),Copy(Edit4.Text,7,l2),2)+copy(Edit4.Text,7,l2);
end;
if ((l1=16) or (l1=20)) then
begin
l2:=l1-8;
Edit8.Text:=InAES(Copy(Edit4.Text,1,8),Copy(Edit4.Text,9,l2),2)+copy(Edit4.Text,9,l2);
end;
end;
procedure TFormEmluator.BitBtn1Click(Sender: TObject);
begin
Edit14.Text := KeyDistribution (PKeyLicence, PAllotLicence, Edit13.Text, Edit17.Text);
end;
procedure TFormEmluator.BitBtn2Click(Sender: TObject);
var
Number : integer;
begin
if copy(Edit14.Text,1,1)='E' then begin ShowMessage('未分配电表密钥!请先分配电表密钥!'); exit; end;
Number := StrToInt(Edit15.Text);
Edit16.Text := DynamicKey (Edit13.Text, Edit14.Text, Number);
Edit2.Text:=Edit16.Text;
edit10.Text:=Edit2.Text;
end;
procedure TFormEmluator.BitBtn3Click(Sender: TObject);
var
len : integer;
begin
Random (StrToInt(copy(Edit17.Text,1,10)));
PKeyLicence := '';
PAllotLicence := '';
for len := 1 To 255 do
begin
PKeyLicence := PKeyLicence + IntToStr(Random (10));
end;
for len := 1 To 255 do
PAllotLicence := PAllotLicence + IntToStr(Random(10));
end;
//*************************************************************************************************************
//*************************************************************************************************************
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -