📄 pub.pas
字号:
unit Pub;
interface
uses
StdCtrls,sysutils,windows,messages,controls,dialogs,inifiles,Classes, DB, DBClient,
MConnect,adodb,registry,mmsystem;
function InitRead(msection,mitem,mdefault:string):string; //读取ini文件
function InitSave(msection,mitem,mValue:string):Boolean; //写入ini文件
function encrypt(s:string):string; //加密过程
function decrypt(s:string):string; //解密过程
function Longencrypt(s:string):string; //加密过程
function Longdecrypt(s:string):string; //解密过程;
function RegSave(str1,str2:string):boolean; //存入数据
function RegLoad(str:string):string; //取出数据
function Regcheck(str:string):boolean; //注册表检查
var
numOp:array[0..5] of string
=('>','>=','<','<=','=','<>');
implementation
uses pas_dm,pas_login;
function InitRead(msection,mitem,mdefault:string):string;
var
ini:Tinifile;
begin
try
ini:=Tinifile.Create('ini\admin.ini');
result:=ini.ReadString(msection,mitem,mdefault);
except
showmessage('Somewhere is wrong');
result:='0';
end;
end;
function InitSave(msection,mitem,mValue:string):Boolean;
var
ini:tinifile;
begin
try
ini:=tinifile.Create('ini\admin.ini');
ini.WriteString(msection,mitem,mvalue);
result:=true;
except
showmessage('somewhere is wrong');
result:=false;
end;
end;
function encrypt(s: string): string; //加密过程
var
iii:integer;
ss1:array[0..18] of integer;
ss2:array[0..18] of char;
begin
lstrcpy(ss2,'0');
lstrcpy(ss2,pchar(trim(s))); //字符串拷入数组
iii:=0;
while iii<19 do
begin
ss1[iii]:=ord(ss2[iii]);//转换成ASCII码
ss1[iii]:=(ss1[iii] xor 010 )+1;
ss2[iii]:=chr(ss1[iii]); //转换成char
iii:=iii+3;
end;
iii:=1;
while iii<19 do
begin
ss1[iii]:=ord(ss2[iii]);//转换成ASCII码
ss1[iii]:=(ss1[iii] xor 10 )+1;
ss2[iii]:=chr(ss1[iii]); //转换成char
iii:=iii+3;
end;
iii:=2;
while iii<19 do
begin
ss1[iii]:=ord(ss2[iii]);
ss1[iii]:=ss1[iii] xor 101+10;
ss2[iii]:=chr(ss1[iii]);
iii:=iii+3;
end;
result:= strpas(@ss2);//加密过程
end;
function decrypt(s: string): string; //解密过程
var
iii:integer;
ss1:array[0..18] of integer;
ss2:array[0..18] of char;
begin
lstrcpy(ss2,'0');
lstrcpy(ss2,pchar(trim(s)));
iii:=0;
while iii<19 do
begin
ss1[iii]:=ord(ss2[iii]);
ss1[iii]:=(ss1[iii]-1) xor 010;
ss2[iii]:=chr(ss1[iii]);
iii:=iii+3;
end;
iii:=1;
while iii<19 do
begin
ss1[iii]:=ord(ss2[iii]);
ss1[iii]:=(ss1[iii]-1) xor 10;
ss2[iii]:=chr(ss1[iii]);
iii:=iii+3;
end;
iii:=2;
while iii<19 do
begin
ss1[iii]:=ord(ss2[iii]);
ss1[iii]:=(ss1[iii]-10)xor 101;
ss2[iii]:=chr(ss1[iii]);
iii:=iii+3;
end;
result:=strpas(@ss2); //数据显示为字符串!
end;
//存入数据
function RegSave(str1,str2:string):boolean;
var Reg : TRegistry;
begin
Reg:=TRegistry.Create;
try
Reg.RootKey:=HKEY_CURRENT_USER;
if Reg.OpenKey('\passwd',true) then
begin
Reg.WriteString(str1,Longencrypt(str2));
result:=true;
end
else
result:=false;
finally
Reg.CloseKey;
Reg.Free;
end;
end;
//取出数据
function RegLoad(str:string):string;
var Reg: TRegistry;
begin
Reg:=TRegistry.Create;
try
Reg.RootKey:=HKEY_CURRENT_USER;
if Reg.OpenKey('\passwd',false) then
begin
IF Reg.ValueExists(str)=true then
begin
result:=Longdecrypt(reg.ReadString(str));
end
else
result:='';
end
else
result:='';
finally
Reg.CloseKey;
Reg.Free;
end;
end;
//注册表检查
function Regcheck(str:string):boolean;
var Reg: TRegistry;
begin
Reg:=TRegistry.Create;
try
Reg.RootKey:=HKEY_CURRENT_USER;
if Reg.OpenKey('\passwd',false) then
begin
IF Reg.ValueExists(str)=true then
begin
result:=true;
end
else
result:=false;
end
else
result:=false;
finally
Reg.CloseKey;
Reg.Free;
end;
end;
function Longencrypt(s:string):string; //长加密过程
var
iii:integer;
ss1:array[0..38] of integer;
ss2:array[0..38] of char;
begin
lstrcpy(ss2,'0');
lstrcpy(ss2,pchar(trim(s))); //字符串拷入数组
iii:=0;
while iii<39 do
begin
ss1[iii]:=ord(ss2[iii]);//转换成ASCII码
ss1[iii]:=(ss1[iii] xor 010 )+1;
ss2[iii]:=chr(ss1[iii]); //转换成char
iii:=iii+3;
end;
iii:=1;
while iii<39 do
begin
ss1[iii]:=ord(ss2[iii]);//转换成ASCII码
ss1[iii]:=(ss1[iii] xor 10 )+1;
ss2[iii]:=chr(ss1[iii]); //转换成char
iii:=iii+3;
end;
iii:=2;
while iii<39 do
begin
ss1[iii]:=ord(ss2[iii]);
ss1[iii]:=ss1[iii] xor 101+10;
ss2[iii]:=chr(ss1[iii]);
iii:=iii+3;
end;
result:= strpas(@ss2);//加密过程
end;
function Longdecrypt(s:string):string; //长解密过程;
var
iii:integer;
ss1:array[0..38] of integer;
ss2:array[0..38] of char;
begin
lstrcpy(ss2,'0');
lstrcpy(ss2,pchar(trim(s)));
iii:=0;
while iii<39 do
begin
ss1[iii]:=ord(ss2[iii]);
ss1[iii]:=(ss1[iii]-1) xor 010;
ss2[iii]:=chr(ss1[iii]);
iii:=iii+3;
end;
iii:=1;
while iii<39 do
begin
ss1[iii]:=ord(ss2[iii]);
ss1[iii]:=(ss1[iii]-1) xor 10;
ss2[iii]:=chr(ss1[iii]);
iii:=iii+3;
end;
iii:=2;
while iii<39 do
begin
ss1[iii]:=ord(ss2[iii]);
ss1[iii]:=(ss1[iii]-10)xor 101;
ss2[iii]:=chr(ss1[iii]);
iii:=iii+3;
end;
result:=strpas(@ss2); //数据显示为字符串!
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -