请高手帮我把易语言转成Delphi
.子程序 动态加密_, 字节集, 公开, 制作:逍遥De二少
.参数 _待加密字节集, 字节集
.参数 _待算密钥_key, 文本型, 可空, 为空则使用“abcdefghijklmnopqrhtuvwxyz1234567890~!@#$%^&*()_+-=”
.局部变量 i, 整数型
.局部变量 密钥字节, 字节集
.局部变量 n, 整数型
.局部变量 密钥长度, 整数型
.局部变量 封包长度, 整数型
.局部变量 数值, 整数型
.局部变量 启动字节, 字节集
.局部变量 整位, 整数型
.局部变量 密钥时间, 字节集
.局部变量 临时字节, 字节型
.局部变量 传递字节, 字节型
_待算密钥_key = 选择 (_待算密钥_key = “”, “abcdefghijklmnopqrhtuvwxyz1234567890~!@#$%^&*()_+-=”, _待算密钥_key)
密钥字节 = 到字节集 (_待算密钥_key)
密钥长度 = 取字节集长度 (密钥字节)
封包长度 = 取字节集长度 (_待加密字节集)
.如果真 (封包长度 > 0 且 密钥长度 > 0)
启动字节 = 到字节集 (取启动时间 ())
密钥时间 = 启动字节
数值 = 取随机数 (2, 255)
.计次循环首 (4, i)
密钥时间 [i] = 位异或 (启动字节 [i], 数值)
.计次循环尾 ()
.计次循环首 (密钥长度, i)
整位 = 整位 + 1
.如果真 (整位 > 4)
整位 = 1
.如果真结束
密钥字节 [i] = 位异或 (密钥字节 [i], 密钥时间 [整位])
.计次循环尾 ()
.计次循环首 (封包长度, i)
整位 = 整位 + 1
.如果真 (整位 > 4)
整位 = 1
.如果真结束
.计次循环首 (密钥长度, n)
_待加密字节集 [i] = 位异或 (_待加密字节集 [i], 密钥字节 [n])
.计次循环尾 ()
_待加密字节集 [i] = 位异或 (_待加密字节集 [i], 启动字节 [整位])
.计次循环尾 ()
数值 = 位取反 (数值)
数值 = 位异或 (数值, 取字节集数据 (密钥时间, #整数型, ))
_待加密字节集 = 到字节集 (数值) + 密钥时间 + _待加密字节集
返回 (_待加密字节集)
.如果真结束
返回 ({ })
要把这些变成Delphi应该怎么做?能用的话再追加分。 展开
是文件加密软件吗?如果你需要,我这里有几个Delphi的文件加密软件。留个邮箱。
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
ListBox1: TListBox;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
T_file:textfile;
implementation
{$R *.dfm}
function E_code(S:string):String;
var
n,i:integer;
str:string;
begin
n:=length(s);
str:='';
for i:=1 to n do
begin
str:=str+char(Ord(s[i])+2);
end;
E_code:=str;
end;
function D_code(s:string):String;
var
n,i:integer;
str:string;
begin
n:=length(s);
str:='';
for i:=1 to n do
begin
str:=str+char(ord(S[i])-2);
end;
D_code:=str;
end;
procedure TForm1.N2Click(Sender: TObject);
var
T_line:String;
begin
if Opendialog1.Execute then
begin
ListBox1.Clear;
Assignfile(T_file,Opendialog1.FileName);
Reset(T_file);
while not eof(T_file) do
begin
Readln(T_file,T_line);
ListBox1.Items.Add(T_line);
end;
end;
CloseFile(T_file);
end;
procedure TForm1.N3Click(Sender: TObject);
var
line_curr:integer;
E_line,n_line:string;
begin
if SaveDialog1.Execute then
begin
AssignFile(T_file,Savedialog1.FileName);
Rewrite(T_file);
For line_curr:=0 to ListBox1.Items.Count-1 do
begin
E_line:=ListBox1.Items[line_curr];
n_line:=E_code(E_line);
Writeln(T_file,n_line);
end;
closeFile(T_file);
end;
end;
procedure TForm1.N4Click(Sender: TObject);
var
line_curr:integer;
D_line,n_line:string;
begin
if SaveDialog1.Execute then
begin
AssignFile(T_file,Savedialog1.FileName);
Rewrite(T_file);
For line_curr:=0 to ListBox1.Items.Count-1 do
begin
D_line:=ListBox1.Items[line_curr];
n_line:=D_code(D_line);
Writeln(T_file,n_line);
end;
closeFile(T_file);
end;
end;
end.
这是文件加密源代码,不过.dpr文件只有通过邮箱发过来
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, XPMan;
type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
Edit2: TEdit;
XPManifest1: TXPManifest;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
i:integer;
strl:string;
temp:byte;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
strl := Trim(Edit1.text);
edit2.clear;
for i:=1 to length(strl) do
begin
temp:=ord(strl[i])+5;
edit2.Text:=edit2.Text+chr(temp);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
strl := Trim(Edit2.text);
edit2.clear;
for i:=1 to length(strl) do
begin
temp:=ord(strl[i])-5;
edit2.Text:=edit2.Text+chr(temp);
end;
end;
end.
这是字符串加密源代码,不过.dpr文件只有通过邮箱发过来
2024-09-19 广告