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

📄 unit1.pas

📁 此案例演示的是如何给文本加密与解密,开发环境为delphi7.0+windowsxp
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtDlgs;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    OpenDialog1: TOpenDialog;
    Button2: TButton;
    Button3: TButton;
    Memo2: TMemo;
    SaveDialog1: TSaveDialog;
    Label1: TLabel;
    Label2: TLabel;
    Memo3: TMemo;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
    pwd:integer; //记录加密密码
    function edcode(s:string;key:integer):string;
    //参数s:加密或者解密的字符串
    //参数key:加密或者解密的密码
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
//加密和解密文件
function tform1.edcode(s:string;key:integer):string;
var i,len:integer;
begin
    if (key<-255) or (key>255) then
    begin
     showmessage('密码必须是-255~255之间的整数!');
     exit;
    end;
    result:='';
    len:=length(s);
   if len>0 then
   begin
      for i:=0 to len-1 do
      //将每个字符的ascii码加上或减去整数key,然后返回相应的字符
      result:=result+char(ord(s[i+1])+key);
   end;
end;


//加密文件
procedure TForm1.Button3Click(Sender: TObject);
var
   F1, F2: TextFile; //文本文件
   Ch,str: string;
begin
  memo3.Lines.Clear;
  memo1.Lines.Clear;
   str:='';
   pwd:=strtoint(inputbox('请输入加密密码','-255~255之间的整数','111'));//加密密码
  if OpenDialog1.Execute then begin //打开加密文件
    label4.Caption:='原文件名:'+opendialog1.FileName;
    AssignFile(F1, OpenDialog1.Filename);//将加密文件指定给f1
    Reset(F1);//打开文件
    if SaveDialog1.Execute then begin //保存文件
      label5.Caption:='加密文件名:'+savedialog1.FileName;
      AssignFile(F2, SaveDialog1.Filename);
      Rewrite(F2); //覆盖写入
      while not Eof(F1) do  //检查是否到文件尾
      begin
        Readln(F1, Ch);//读取一行,同时将指针移动到下一行开始处
        memo3.Lines.Append(ch);
        str:=edcode(ch,pwd); //加密本行字符
        Writeln(F2, str);//写入加密文件
        memo1.Lines.Append(str);
       end;

      CloseFile(F2); //关闭文件
    end;
    CloseFile(F1);
  end;

end;

//解密文件
procedure TForm1.Button2Click(Sender: TObject);
var
   F1, F2: TextFile;
   Ch,str: string;
begin
  if strtoint(inputbox('请输入解密密码','密码',''))<>pwd then
  begin
  showmessage('密码错误,请确认后再次输入');
  exit;
  end;
  memo2.Lines.Clear;
  str:='';
  if OpenDialog1.Execute then begin
    AssignFile(F1, OpenDialog1.Filename);
    Reset(F1);
    if SaveDialog1.Execute then begin
      label6.Caption:='解密文件名:'+savedialog1.FileName;
      AssignFile(F2, SaveDialog1.Filename);
      Rewrite(F2);
      while not Eof(F1) do
      begin
        Readln(F1, Ch);
        str:=edcode(ch,-pwd); //解密时执行与加密相反的操作
         Writeln(F2, str);
         memo2.Lines.Append(str);
      end;
       CloseFile(F2);
    end;
    CloseFile(F1);
  end;

end;

end.




⌨️ 快捷键说明

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