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

📄 u_enc.~pas

📁 一个字符的加 密解 密程序的一段代码,可以让有需要的新手作个参考.
💻 ~PAS
字号:
unit U_ENC;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button2: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private

    { Private declarations }
  public
     stringkey :string ;
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

Function EncrypKey (Src:String; Key:String):string;
  var   
  //idx :integer;
  KeyLen :Integer;
  KeyPos :Integer;
  offset :Integer;
  dest :string;
  SrcPos :Integer;
  SrcAsc :Integer;
  //TmpSrcAsc :Integer;
  Range :Integer;
    
  begin   
  KeyLen:=Length(Key);   
  if KeyLen = 0 then key:='Think Space';
  KeyPos:=0;   
  SrcPos:=0;
  SrcAsc:=0;
  Range:=256;
    
  Randomize;   
  offset:=Random(Range);   
  dest:=format('%1.2x',[offset]);   
  for SrcPos := 1 to Length(Src) do
  begin   
  SrcAsc:=(Ord(Src[SrcPos]) + offset)   MOD   255;
  if   KeyPos < KeyLen then KeyPos:= KeyPos + 1 else KeyPos:=1;
  SrcAsc:= SrcAsc xor Ord(Key[KeyPos]);
  dest:=dest + format('%1.2x',[SrcAsc]);
  offset:=SrcAsc;   
  end;   
  Result:=Dest;   
  end;
  //解密函数   
  Function UncrypKey (Src:String; Key:String):string;
  var   
  //idx :integer;
  KeyLen :Integer;
  KeyPos :Integer;
  offset :Integer;
  dest :string;
  SrcPos :Integer;
  SrcAsc :Integer;
  TmpSrcAsc :Integer;
  Range :Integer;
    
  begin   
  KeyLen:=Length(Key);   
  if KeyLen = 0 then key:='Think Space';
  KeyPos:=0;   
  SrcPos:=0;
  SrcAsc:=0;
  Range:=256;
  offset:=StrToInt('$'+   copy(src,1,2));
  SrcPos:=3;
  repeat   
  SrcAsc:=StrToInt('$'+ copy(src,SrcPos,2));
  if KeyPos < KeyLen Then KeyPos := KeyPos + 1 else KeyPos := 1;
  TmpSrcAsc := SrcAsc xor Ord(Key[KeyPos]);
  if   TmpSrcAsc <=offset then
  TmpSrcAsc :=255 + TmpSrcAsc - offset
  else   
  TmpSrcAsc := TmpSrcAsc   -   offset;
  dest := dest + chr(TmpSrcAsc);
  offset:=srcAsc;   
  SrcPos:=SrcPos + 2;
  until SrcPos >= Length(Src);
  Result:=Dest;   
  end;


procedure TForm1.Button1Click(Sender: TObject);
begin
    if edit1.Text<>'' then
    begin
    edit2.Text:=EncrypKey(edit1.Text,stringkey);
   end
   else
    Application.MessageBox('请输入密码','提示',0+64);
    edit1.SetFocus;
    exit;
    end;

procedure TForm1.Button2Click(Sender: TObject);
begin

     edit3.Text:=UncrypKey(edit2.Text,stringkey);
end;

end.

⌨️ 快捷键说明

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