⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 desform.~pas

📁 用delphi实现的des加密算法
💻 ~PAS
字号:
unit DESForm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ActnList, Menus;

type
  TForm1 = class(TForm)
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    MemoContext: TMemo;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure N8Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  tempFile : TextFile;  //用于关联打开的文件
  Lines : integer; //记录文件的行数
implementation
uses DES;
const key = 'abcdefghijklmnopqrestuvwxyz';//密钥
{$R *.dfm}

//打开文件
procedure TForm1.N2Click(Sender: TObject);
var
  ch :  char;
begin
  //Lines := 0;
  if OpenDialog1.Execute then
    MemoContext.Lines.LoadFromFile(OpenDialog1.FileName)
  else
    exit;
    AssignFile(tempFile,OpenDialog1.FileName);
    Reset(tempFile);
    //统计正文拥有的行数
    Lines :=0;
   while not eof(tempFile) do
   begin
    while not eoln(tempFile) do
    begin
      read(tempFile,ch);
    end;
    Readln(tempFile);
    Lines := Lines +1;
   end;
   CloseFile(tempFile);
end;
//保存文件
procedure TForm1.N3Click(Sender: TObject);
begin
    if SaveDialog1.Execute then
      MemoContext.Lines.SaveToFile(SaveDialog1.FileName)
    else
      Exit;
end;
//关闭文件
procedure TForm1.N5Click(Sender: TObject);
begin
   close;
end;
//加密文件
procedure TForm1.N7Click(Sender: TObject);
var
  LineStr :string;
  i :integer;
  F : textfile;
begin
  AssignFile(tempFile,OpenDialog1.FileName);
  reset(tempFile);
  AssignFile(F,'e:\encry.txt');
  Rewrite(F);
  {利用TMemo控件进行文件加密
  Lines := MemoContext.Lines.Count;
  for i := 0 to MemoContext.Lines.Count-1 do
    begin
      LineStr := EncryStrHex(Memocontext.Lines[i],key);
      Memocontext.Lines.Add(LineStr);
    end; }
    for i := 0 to Lines-1 do
          begin
          ReadLn(tempFile,LineStr);
          LineStr := EncryStrHex(LineStr,key);
          Writeln(F,LineStr);
          end;
    ShowMessage('加密成功,密文请见encry.txt!');
    CloseFile(F);
    closeFile(tempFile);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  MemoContext.Lines.Clear;
end;
//解密文件
procedure TForm1.N8Click(Sender: TObject);
var
  i : integer;
  LineStr :string;
  F : TextFile;
begin
  {利用TMemo控件进行文件解密操作
  for i := Lines to MemoContext.Lines.Count-1 do
  begin
      LineStr := DecryStrHex(Memocontext.Lines[i],key);
      Memocontext.Lines.Add(LineStr);
  end;}
  AssignFile(tempFile,OpenDialog1.FileName);
  AssignFile(F,'e:\decry.txt');
  Rewrite(F);
  for i := 0 to Lines-1 do
  begin
    ReadLn(tempFile,LineStr);
    LineStr := DecryStrHex(LineStr,key);
    WriteLn(F,LineStr);
  end;
    ShowMessage('解密成功,解密后的密文在Decry.txt中!');
    CloseFile(tempFile);
    CloseFile(F);

end;

end.

⌨️ 快捷键说明

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