📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, SBPGP, SBPGPKeys, SBUtils, SBPGPUtils,
SBPGPStreams, SBPGPConstants;
type
TfrmMainForm = class(TForm)
lbInputFileName: TLabel;
editInputFile: TEdit;
editOutputFile: TEdit;
lbOutputFileName: TLabel;
btnBrowseInputFile: TButton;
btnBrowseOutputFile: TButton;
btnEncrypt: TButton;
btnClose: TButton;
Bevel1: TBevel;
dlgOpenDialog: TOpenDialog;
pgpWriter: TElPGPWriter;
lbPassphrase: TLabel;
dlgSaveDialog: TSaveDialog;
editPassphrase: TEdit;
procedure btnCloseClick(Sender: TObject);
procedure btnEncryptClick(Sender: TObject);
procedure btnBrowseInputFileClick(Sender: TObject);
procedure btnBrowseOutputFileClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure Encrypt(const strInputFilename : string;
const strOutputFilename : string; strPassphrase : string);
end;
var
frmMainForm: TfrmMainForm;
implementation
{$R *.dfm}
procedure TfrmMainForm.Encrypt(const strInputFilename : string;
const strOutputFilename : string; strPassphrase : string);
var
streamInput, streamOutput: TFileStream;
begin
pgpWriter.Armor := true;
pgpWriter.ArmorHeaders.Clear();
pgpWriter.ArmorHeaders.Add('Version: EldoS OpenPGPBlackbox');
pgpWriter.ArmorBoundary := 'PGP MESSAGE';
pgpWriter.EncryptionType := etPassphrase;
pgpWriter.Passphrases.Add(strPassphrase);
pgpWriter.Filename := ExtractFileName(strInputFilename);
pgpWriter.Timestamp := Now;
// creating filestream for reading from input file
streamInput := TFileStream.Create(strInputFilename, fmOpenRead);
try
// create filestream for writing encrypted file
streamOutput := TFileStream.Create(strOutputFilename, fmCreate);
try
pgpWriter.Encrypt(streamInput, streamOutput, 0)
finally
streamOutput.Free;
end;
finally
streamInput.Free;
end;
MessageDlg('The file was encrypted successfully', mtInformation, [mbOk], 0);
Close;
end;
procedure TfrmMainForm.btnCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfrmMainForm.btnEncryptClick(Sender: TObject);
begin
if not FileExists(editInputFile.Text) then
MessageDlg('Source file not found', mtError, [mbOk], 0)
else if editPassphrase.Text = '' then
MessageDlg('Please, enter passphrase', mtError, [mbOk], 0)
else
Encrypt(editInputFile.Text, editOutputFile.Text, editPassphrase.Text);
end;
procedure TfrmMainForm.btnBrowseInputFileClick(Sender: TObject);
begin
dlgOpenDialog.Filter := '';
dlgOpenDialog.Title := 'Please, select file';
if dlgOpenDialog.Execute then
begin
editInputFile.Text := dlgOpenDialog.FileName;
editOutputFile.Text := editInputFile.Text + '.pgp';
end;
end;
procedure TfrmMainForm.btnBrowseOutputFileClick(Sender: TObject);
begin
dlgSaveDialog.Filter := '';
dlgSaveDialog.Title := 'Please, select file';
if dlgSaveDialog.Execute then
editOutputFile.Text := dlgSaveDialog.FileName;
end;
initialization
SetLicenseKey('ADDCD14AD06709806817E0B3D7BFD0A2222D536FE156466C5D5FE65DB5DEAE76' +
'FFDEBC07E915A5751C12C01C783958872A38E4A5EDA140E7247E0F2E56442A3C' +
'F3E9347AD8FDE52083A0DFC86BC00ECB0FD0CF1B51159A2BCB84F6EA6349EF47' +
'5C15A59AFCC55F7C3AAD26C279628B5D91B1DC94BD2385354A70CCA3B76101D9' +
'F41C84A639FC3CCE4BA8F0CC4A66DCD150114A3F58C1AD46B7B94643741BC20A' +
'8DCA83AB921480951B423CAA19EF1863A47CA2C3422E7E5634BED98939A5AE43' +
'DE1E4BAD79E66D8A5C973B3455656C8C9B6FF024FADD6CDA02D0F506D98493C8' +
'BD1ED7B237DB75FA31F2C82654490CDDDEE24E19939137B9E1DB05508733B22F');
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -