rc_rijndael_main.pas

来自「Rijndael algorithm修正了CBC下BUG的版本(有源代码)工作在」· PAS 代码 · 共 79 行

PAS
79
字号
unit rc_rijndael_main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons,
  rc_codecs,    {MIME encode/decode}
  rc_rndcrypt   {Rijndael Extended API}
  ;

type
  TForm1 = class(TForm)
    ePlainText: TEdit;
    eCipherText: TEdit;
    lplaintext: TLabel;
    lciphertext: TLabel;
    Label3: TLabel;
    eKey: TEdit;
    btEncrypt: TBitBtn;
    btDecrypt: TBitBtn;
    btClose: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure eKeyExit(Sender: TObject);
    procedure ePlainTextChange(Sender: TObject);
    procedure btEncryptClick(Sender: TObject);
    procedure btDecryptClick(Sender: TObject);
    procedure btCloseClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
var
  i: integer;
begin
  randomize;
  eKey.Text:= '';
  for i:= 1 to (_KEYLength div 8) do
    eKey.Text:= eKey.Text+format('%.2X',[random(255)]);
end;

procedure TForm1.eKeyExit(Sender: TObject);
begin
  eKey.Text:= ExpandKey(eKey.Text,_KEYLength);
end;

procedure TForm1.btEncryptClick(Sender: TObject);
begin
  eCipherText.Text:= rc_Encode(EnCryptString(ePlainText.Text,eKey.Text));
end;

procedure TForm1.btDecryptClick(Sender: TObject);
begin
  ePlainText.Text:= DeCryptString(rc_Decode(eCipherText.Text),eKey.Text);
end;

procedure TForm1.ePlainTextChange(Sender: TObject);
begin
  lplaintext.caption:= format('plaintext (%d):',[length(eplaintext.text)]);
  lciphertext.caption:= format('MIME ciphertext (%d):',[length(rc_Decode(eciphertext.text))]);
end;

procedure TForm1.btCloseClick(Sender: TObject);
begin
  Close;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?