zoukankan      html  css  js  c++  java
  • 一种简单的字符串加密和解密算法

    unit Unit1;

    interface

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

    const
      XorKey:
    array[0..7of Byte=($B2,$09,$AA,$55,$93,$6D,$84,$47);
    type
      TForm1 
    = class(TForm)
        Button1: TButton;
        Button2: TButton;
        Edit1: TEdit;
        Edit2: TEdit;
        
    procedure Button1Click(Sender: TObject);
        
    procedure Button2Click(Sender: TObject);
      
    private
        
    { Private declarations }
      
    public
        
    { Public declarations }
        
    function Encrypt(Str: string): string;
        
    function Decrypt(Str: string): string;
      
    end;

    var
      Form1: TForm1;

    implementation

    {$R *.dfm}



    function TForm1.Encrypt(Str: string): string;//加密算法
    var
      i,j:Integer;
    begin
      Result :
    = '';
      j :
    = 0;
      
    for i := 1 to Length(Str) do
      
    begin
        Result :
    = Result + IntToHex(Byte(Str[i]) xor XorKey[j],2);
        j :
    = (j + 1mod 8;
      
    end;
    end;

    function TForm1.Decrypt(Str: string): string;//解密算法
    var
      i,j:Integer;
    begin
      Result :
    = '';
      j :
    = 0;
      
    for i := 1 to Length(Str) div 2 do
      
    begin
        Result :
    = Result + Char(StrToInt('$'+Copy(Str,i*2-1,2)) xor XorKey[j]);
        j :
    = (j + 1mod 8;
      
    end;
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Edit2.Text :
    =Encrypt(Edit1.Text);
    end;

    procedure TForm1.Button2Click(Sender: TObject);
    begin
      Edit1.Text :
    = Decrypt(Edit2.Text);
    end;

    end.
  • 相关阅读:
    shell
    RANDOM随机数
    docker网络管理
    Oracle-28001密码过期问题及28000账户被锁解决
    Oracle数据泵导入导出(expdb/impdb)
    mysql多实例部署
    sed命令基本使用
    MySQL5.7.x二进制安装
    每日日报
    每日日报
  • 原文地址:https://www.cnblogs.com/tc310/p/1876453.html
Copyright © 2011-2022 走看看