📄 form.pas
字号:
unit Form;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, XPMan;
type
TMainForm = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
tb_key_Modulus: TEdit;
but_createkey: TButton;
tb_key_Exponent: TEdit;
tb_key_P: TEdit;
tb_key_Q: TEdit;
tb_key_DP: TEdit;
tb_key_DQ: TEdit;
tb_key_InverseQ: TEdit;
tb_key_D: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
GroupBox2: TGroupBox;
Label9: TLabel;
Label10: TLabel;
but_encrypt: TButton;
but_decrypt: TButton;
but_clear: TButton;
memo_text: TMemo;
memo_textencry: TMemo;
XPManifest1: TXPManifest;
procedure but_createkeyClick(Sender: TObject);
procedure but_encryptClick(Sender: TObject);
procedure but_decryptClick(Sender: TObject);
procedure but_clearClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
{$R *.dfm}
procedure CreateKey(b:integer; Modulus:AnsiString; Exponent:AnsiString; P:AnsiString; Q:AnsiString; DP:AnsiString; DQ:AnsiString; InverseQ:AnsiString; D:AnsiString);stdcall;
external 'RSAKey.dll';
procedure TMainForm.but_createkeyClick(Sender: TObject);
var
m,e,p,q,dp,dq,inverseq,d:AnsiString;
begin
SetLength(m, 1024);
SetLength(e, 1024);
SetLength(p, 1024);
SetLength(q, 1024);
SetLength(dp, 1024);
SetLength(dq, 1024);
SetLength(inverseq, 1024);
SetLength(d, 1024);
CreateKey(1024,m,e,p,q,dp,dq,inverseq,d);
tb_key_Modulus.Text := m;
tb_key_Exponent.Text := e;
tb_key_P.Text := p;
tb_key_Q.Text := q;
tb_key_DP.Text := dp;
tb_key_DQ.Text := dq;
tb_key_InverseQ.Text := inverseq;
tb_key_D.Text := d;
end;
function Cmip_Encrypt(text:ansistring; exp:ansistring; module:ansistring):PChar;stdcall;
external 'cmipcrypt.dll';
function Cmip_Decrypt(etext:ansistring; d:ansistring; module:ansistring):PChar;stdcall;
external 'cmipcrypt.dll';
procedure TMainForm.but_encryptClick(Sender: TObject);
var
text,exp,module:string;
begin
//加密
text := memo_text.Text;
exp := tb_key_Exponent.Text;
module := tb_key_Modulus.Text;
memo_textencry.Text := Cmip_Encrypt(text,exp,module);
end;
procedure TMainForm.but_decryptClick(Sender: TObject);
var
etext,d,module:string;
begin
//解密
etext := memo_textencry.Text;
d := tb_key_D.Text;
module := tb_key_Modulus.Text;
memo_text.Text := Cmip_Decrypt(etext,d,module);
end;
procedure TMainForm.but_clearClick(Sender: TObject);
begin
//清除
memo_text.Text := '';
memo_textencry.Text := '';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -