📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
GroupBox1: TGroupBox;
Label2: TLabel;
Label3: TLabel;
Edit2: TEdit;
Button2: TButton;
Edit3: TEdit;
GroupBox2: TGroupBox;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Button3: TButton;
GroupBox3: TGroupBox;
Label7: TLabel;
Label8: TLabel;
Button4: TButton;
RSA_NEdit: TEdit;
RSA_DEdit: TEdit;
Button5: TButton;
OpenDialog1: TOpenDialog;
GroupBox4: TGroupBox;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Edit9: TEdit;
Edit10: TEdit;
Edit11: TEdit;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Label12: TLabel;
Label13: TLabel;
RSA_InputStr: TEdit;
RSA_OutputStr: TEdit;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
{ 取得硬盘序列号 }
Var
hLib : HMODULE;
GetHardDiskId : function (lpOutBuffer:PChar; lpRegisterCode:PChar): Boolean; stdcall;
DiskID: array [0..31] of char;
begin
FillChar(DiskID, SizeOf(DiskID), #0);
hLib := LoadLibrary('reg.dll');
if hLib <> 0 then
begin
@GetHardDiskId := GetProcAddress(hLib, 'GetHardDiskId');
if @GetHardDiskId <> nil then
begin
if GetHardDiskId(DiskID, 'USER-123456789') then
Edit1.Text := DiskID
else
ShowMessage('Error!');
end
else
ShowMessage(' 加载功能模块出错! ');
FreeLibrary(hLib);
end
else
ShowMessage(' 无法加载DLL! ');
end;
procedure TForm1.Button2Click(Sender: TObject);
{ MD5 加密}
Var
hLib : HMODULE;
MD5Encrypt : function (lpInBuffer:PChar; lpOutBuffer:PChar; length:integer; lpRegisterCode:PChar): Boolean; stdcall;
OutputStr: array [0..33] of char;
begin
FillChar(OutputStr, SizeOf(OutputStr), #0);
hLib := LoadLibrary('reg.dll');
if hLib <> 0 then
begin
@MD5Encrypt := GetProcAddress(hLib, 'MD5Encrypt');
if @MD5Encrypt <> nil then
begin
if MD5Encrypt(PChar(Edit2.Text), OutputStr, length(Edit2.Text), 'USER-123456789') then
Edit3.Text := OutputStr
else
ShowMessage('Error!');
end
else
ShowMessage(' 加载功能模块出错! ');
FreeLibrary(hLib);
end
else
ShowMessage(' 无法加载DLL! ');
end;
procedure TForm1.Button3Click(Sender: TObject);
{ BlowFish 加密 }
Var
hLib : HMODULE;
BlowFishEncrypt : function (lpInBuffer:PChar; lpKey:PChar; lpOutBuffer:PChar; lpRegisterCode:PChar): Boolean; stdcall;
OutputStr: array [0..200] of char;
begin
FillChar(OutputStr, SizeOf(OutputStr), #0);
hLib := LoadLibrary('reg.dll');
if hLib <> 0 then
begin
@BlowFishEncrypt := GetProcAddress(hLib, 'BlowFishEncrypt');
if @BlowFishEncrypt <> nil then
begin
if BlowFishEncrypt(PChar(Edit4.Text), PChar(Edit5.Text), OutputStr, 'USER-123456789') then
Edit6.Text := OutputStr
else
ShowMessage('Error!');
end
else
ShowMessage(' 加载功能模块出错! ');
FreeLibrary(hLib);
end
else
ShowMessage(' 无法加载DLL! ');
end;
procedure TForm1.Button5Click(Sender: TObject);
{ RSA解密 }
Var
hLib : HMODULE;
RSADecrypt : function (lpInBuffer:PChar; lpNStr:PChar; Mode:integer; lpOutBuffer:PChar; lpRegisterCode:PChar): Boolean; stdcall;
OutputStr: array [0..500] of char;
begin
FillChar(OutputStr, SizeOf(OutputStr), #0);
hLib := LoadLibrary('reg.dll');
if hLib <> 0 then
begin
@RSADecrypt := GetProcAddress(hLib, 'RSADecrypt');
if @RSADecrypt <> nil then
begin
{下面演示代码“加密模式”参数使用Mode0,因此输入参数请使用128bit的N、D参数。}
if RSADecrypt(PChar(RSA_OutputStr.Text), PChar(RSA_NEdit.Text), 0, OutputStr, 'USER-123456789') then
RSA_OutputStr.Text := OutputStr
else
ShowMessage('Error!');
end
else
ShowMessage(' 加载功能模块出错! ');
FreeLibrary(hLib);
end
else
ShowMessage(' 无法加载DLL! ');
end;
procedure TForm1.Button4Click(Sender: TObject);
{ RSA加密 }
Var
hLib : HMODULE;
RSAEncrypt : function (lpInBuffer:PChar; lpDStr:PChar; lpNStr:PChar; Mode:integer; lpOutBuffer:PChar; lpRegisterCode:PChar): Boolean; stdcall;
OutputStr: array [0..500] of char;
begin
FillChar(OutputStr, SizeOf(OutputStr), #0);
hLib := LoadLibrary('reg.dll');
if hLib <> 0 then
begin
@RSAEncrypt := GetProcAddress(hLib, 'RSAEncrypt');
if @RSAEncrypt <> nil then
begin
{下面演示代码“加密模式”参数使用Mode0,因此输入参数请使用128bit的N、D参数。}
if RSAEncrypt(PChar(RSA_InputStr.Text), PChar(RSA_DEdit.Text), PChar(RSA_NEdit.Text), 0, OutputStr, 'USER-123456789') then
RSA_OutputStr.Text := OutputStr
else
ShowMessage('Error!');
end
else
ShowMessage(' 加载功能模块出错! ');
FreeLibrary(hLib);
end
else
ShowMessage(' 无法加载DLL! ');
end;
procedure TForm1.Button6Click(Sender: TObject);
{ EncryptStringFun1 加密 }
Var
hLib : HMODULE;
EncryptStringFun1 : function (lpInBuffer:PChar; lpKey:PChar; lpOutBuffer:PChar; lpRegisterCode:PChar): Boolean; stdcall;
OutputStr: array [0..1024] of char;
begin
FillChar(OutputStr, SizeOf(OutputStr), #0);
hLib := LoadLibrary('reg.dll');
if hLib <> 0 then
begin
@EncryptStringFun1 := GetProcAddress(hLib, 'EncryptStringFun1');
if @EncryptStringFun1 <> nil then
begin
if EncryptStringFun1(PChar(Edit9.Text), PChar(Edit10.Text), OutputStr, 'USER-123456789') then
Edit11.Text := OutputStr
else
ShowMessage('Error!');
end
else
ShowMessage(' 加载功能模块出错! ');
FreeLibrary(hLib);
end
else
ShowMessage(' 无法加载DLL! ');
end;
procedure TForm1.Button7Click(Sender: TObject);
{ EncryptStringFun1 解密 }
Var
hLib : HMODULE;
DecryptStringFun1 : function (lpInBuffer:PChar; lpKey:PChar; lpOutBuffer:PChar; lpRegisterCode:PChar): Boolean; stdcall;
OutputStr: array [0..1024] of char;
begin
FillChar(OutputStr, SizeOf(OutputStr), #0);
hLib := LoadLibrary('reg.dll');
if hLib <> 0 then
begin
@DecryptStringFun1 := GetProcAddress(hLib, 'DecryptStringFun1');
if @DecryptStringFun1 <> nil then
begin
if DecryptStringFun1(PChar(Edit11.Text), PChar(Edit10.Text), OutputStr, 'USER-123456789') then
Edit9.Text := OutputStr
else
ShowMessage('Error!');
end
else
ShowMessage(' 加载功能模块出错! ');
FreeLibrary(hLib);
end
else
ShowMessage(' 无法加载DLL! ');
end;
procedure TForm1.Button8Click(Sender: TObject);
{ BlowFish 解密 }
Var
hLib : HMODULE;
BlowFishDecrypt : function (lpInBuffer:PChar; lpKey:PChar; lpOutBuffer:PChar; lpRegisterCode:PChar): Boolean; stdcall;
OutputStr: array [0..200] of char;
begin
FillChar(OutputStr, SizeOf(OutputStr), #0);
hLib := LoadLibrary('reg.dll');
if hLib <> 0 then
begin
@BlowFishDecrypt := GetProcAddress(hLib, 'BlowFishDecrypt');
if @BlowFishDecrypt <> nil then
begin
if BlowFishDecrypt(PChar(Edit6.Text), PChar(Edit5.Text), OutputStr, 'USER-123456789') then
Edit4.Text := OutputStr
else
ShowMessage('Error!');
end
else
ShowMessage(' 加载功能模块出错! ');
FreeLibrary(hLib);
end
else
ShowMessage(' 无法加载DLL! ');
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -