UnitExample.pas
资源名称:文件加密软件.rar [点击查看]
上传用户:whyddz
上传日期:2010-02-05
资源大小:238k
文件大小:7k
源码类别:
破解
开发平台:
Delphi
- { *********************************************************************** }
- { }
- { AES Interface Unit 加密算法接口演示程序 }
- { }
- { 版权所有 (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 = '操作状态 : 正在加密...';
- StrEncrypted = '操作状态 : 加密完成';
- StrDecrypting = '操作状态 : 正在解密...';
- StrDecrypted = '操作状态 : 解密完成';
- 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
- { -- 调用标准例程 EncryptString 加密字符串 -- }
- case cbKeyBit.ItemIndex of
- 0: memEncStr.Text := EncryptString(memSrcStr.Text, ledKey.Text);
- { -- 此处省略了 KeyBit的参数 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的参数 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
- { -- 调用标准例程 DecryptString 解密字符串 -- }
- case cbKeyBit.ItemIndex of
- 0: memDecStr.Text := DecryptString(memEncStr.Text, ledKey.Text);
- { -- 此处省略了 KeyBit的参数 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的参数 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.