?? unitexample.pas
字號:
{ *********************************************************************** }
{ }
{ AES Interface Unit 加密算法接口演示程序 }
{ }
{ 版權(quán)所有 (c) 2004 楊澤暉 }
{ }
{ *********************************************************************** }
unit UnitExample;
interface
uses
Windows, Messages, SysUtils, Classes, Forms, Controls, StdCtrls, AES,
ComCtrls, Dialogs, ExtCtrls;
const
MsgInformation = '信息';
MsgError = '錯誤';
StrEncStrEmpty = '請輸入要加密的字符串。';
StrDecStrEmpty = '請輸入要解密的字符串。';
StrSrcFileNotExists = '要進行操作的源文件不存在。';
StrKeyBitMode = '%s 密匙支持的密碼最大長度為 %d 個字符。';
StrOpraTime = '操作時間 : %d 毫秒';
StrEncrypting = '操作狀態(tài) : 正在加密...';
StrEncrypted = '操作狀態(tài) : 加密完成';
StrDecrypting = '操作狀態(tài) : 正在解密...';
StrDecrypted = '操作狀態(tài) : 解密完成';
type
TFormAES = class(TForm)
btnEnc: TButton;
btnExit: TButton;
btnDec: TButton;
btnAbout: TButton;
PageControl: TPageControl;
TabSheet1: TTabSheet;
GroupBox1: TGroupBox;
memSrcStr: TMemo;
GroupBox2: TGroupBox;
memEncStr: TMemo;
GroupBox3: TGroupBox;
memDecStr: TMemo;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
GroupBox4: TGroupBox;
GroupBox5: TGroupBox;
ledSrcFile: TLabeledEdit;
btnOpenFile: TButton;
btnSaveFile: TButton;
ledDstFile: TLabeledEdit;
Panel1: TPanel;
ledKey: TLabeledEdit;
lblKeyHint: TLabel;
cbKeyBit: TComboBox;
Label2: TLabel;
GroupBox6: TGroupBox;
lblTime: TLabel;
OpenDialog: TOpenDialog;
SaveDialog: TSaveDialog;
lblState: TLabel;
Label1: TLabel;
imAppIcon: TImage;
procedure btnDecClick(Sender: TObject);
procedure btnEncClick(Sender: TObject);
procedure btnAboutClick(Sender: TObject);
procedure btnExitClick(Sender: TObject);
procedure cbKeyBitSelect(Sender: TObject);
procedure btnOpenFileClick(Sender: TObject);
procedure btnSaveFileClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormAES: TFormAES;
implementation
{$R *.DFM}
procedure TFormAES.cbKeyBitSelect(Sender: TObject);
begin
case cbKeyBit.ItemIndex of
0: ledKey.MaxLength := 16;
1: ledKey.MaxLength := 24;
2: ledKey.MaxLength := 32;
end;
lblKeyHint.Caption := Format(StrKeyBitMode, [cbKeyBit.Text, ledKey.MaxLength]);
end;
procedure TFormAES.btnEncClick(Sender: TObject);
var
Start, Stop: Cardinal;
begin
case PageControl.ActivePageIndex of
0: { -- 字符串加密 -- }
begin
if Length(memSrcStr.Text) > 0 then
begin
{ -- 調(diào)用標(biāo)準(zhǔn)例程 EncryptString 加密字符串 -- }
case cbKeyBit.ItemIndex of
0: memEncStr.Text := EncryptString(memSrcStr.Text, ledKey.Text);
{ -- 此處省略了 KeyBit的參數(shù) KeyBit := kb128 -- }
1: memEncStr.Text := EncryptString(memSrcStr.Text, ledKey.Text, kb192);
2: memEncStr.Text := EncryptString(memSrcStr.Text, ledKey.Text, kb256);
end;
end else
MessageBox(Handle, StrEncStrEmpty, MsgInformation, MB_ICONINFORMATION);
end;
1: { -- 流加密 -- }
begin
MessageBox(Handle, '暫時沒有流加密演示。', MsgInformation, MB_ICONINFORMATION);
end;
2: { -- 文件加密 -- }
begin
if FileExists(ledSrcFile.Text) then
begin
lblState.Caption := StrEncrypting;
Start := GetTickCount;
case cbKeyBit.ItemIndex of
0: EncryptFile(ledSrcFile.Text, ledDstFile.Text, ledKey.Text);
{ -- 此處省略了 KeyBit的參數(shù) KeyBit := kb128 -- }
1: EncryptFile(ledSrcFile.Text, ledDstFile.Text, ledKey.Text, kb192);
2: EncryptFile(ledSrcFile.Text, ledDstFile.Text, ledKey.Text, kb256);
end;
Stop := GetTickCount;
lblTime.Caption := Format(StrOpraTime, [Stop - Start]);
lblState.Caption := StrEncrypted;
end else
MessageBox(Handle, StrSrcFileNotExists, MsgError, MB_ICONERROR);
end;
end;
end;
procedure TFormAES.btnDecClick(Sender: TObject);
var
Start, Stop: Cardinal;
begin
case PageControl.ActivePageIndex of
0:
begin
if Length(memEncStr.Text) > 0 then
begin
{ -- 調(diào)用標(biāo)準(zhǔn)例程 DecryptString 解密字符串 -- }
case cbKeyBit.ItemIndex of
0: memDecStr.Text := DecryptString(memEncStr.Text, ledKey.Text);
{ -- 此處省略了 KeyBit的參數(shù) KeyBit := kb128 -- }
1: memDecStr.Text := DecryptString(memEncStr.Text, ledKey.Text, kb192);
2: memDecStr.Text := DecryptString(memEncStr.Text, ledKey.Text, kb256);
end;
end else
MessageBox(Handle, StrDecStrEmpty, MsgInformation, MB_ICONINFORMATION);
end;
1: { -- 流解密 -- }
begin
MessageBox(Handle, '暫時沒有流解密演示。', MsgInformation, MB_ICONINFORMATION);
end;
2: { -- 文件解密 -- }
begin
if FileExists(ledSrcFile.Text) then
begin
lblState.Caption := StrDecrypting;
Start := GetTickCount;
case cbKeyBit.ItemIndex of
0: DecryptFile(ledSrcFile.Text, ledDstFile.Text, ledKey.Text);
{ -- 此處省略了 KeyBit的參數(shù) KeyBit := kb128 -- }
1: DecryptFile(ledSrcFile.Text, ledDstFile.Text, ledKey.Text, kb192);
2: DecryptFile(ledSrcFile.Text, ledDstFile.Text, ledKey.Text, kb256);
end;
Stop := GetTickCount;
lblTime.Caption := Format(StrOpraTime, [Stop - Start]);
lblState.Caption := StrDecrypted;
end else
MessageBox(Handle, StrSrcFileNotExists, MsgError, MB_ICONERROR);
end;
end;
end;
procedure TFormAES.btnAboutClick(Sender: TObject);
var
S: string;
begin
S := 'AES 加密算法演示程序 v1.3' + #13 + #13 +
'Advanced Encryption Standard (AES)' + #13 +
'Copyright (c) 1998-2001 EldoS, Alexander Ionov.' + #13 + #13 +
'AES Interface Unit v1.3' + #13 +
'Copyright (c) 2004 Jorlen Young.' + #13 + #13 +
'Website:' + #13 +
' http://jorlen.51.net/' + #13 +
' http://mycampus.1155.net/' + #13 +
' http://mycampus.ecoo.net/' + #13 +
' http://mycampus.5500.org/' + #13 + #13 +
'Email: stanley_xfx@163.com';
MessageBox(Handle, PChar(S), MsgInformation, MB_ICONINFORMATION);
end;
procedure TFormAES.btnExitClick(Sender: TObject);
begin
Application.Terminate;
end;
procedure TFormAES.btnOpenFileClick(Sender: TObject);
begin
with OpenDialog do
begin
if Execute then
ledSrcFile.Text := FileName;
end;
end;
procedure TFormAES.btnSaveFileClick(Sender: TObject);
begin
with SaveDialog do
begin
if Execute then
ledDstFile.Text := FileName;
end;
end;
procedure TFormAES.FormCreate(Sender: TObject);
begin
imAppIcon.Picture.Icon.Assign(Application.Icon);
end;
end.
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -