📄 ppublic.pas
字号:
unit PPublic;
interface
Const MIN_ASC:Integer = 32;
Const MAX_ASC:Integer = 126;
Const NUM_ASC :Integer= 95;
function Cipher(password,from_text:String):String;
function MultiLink(Fang:Integer):LongInt;
function NumericPassword(password:String):LongInt;
function Decipher(password,from_text :String):String;
var
UserCode:String;
UserName:String;
DepartCode:String;
DepartName:String;
sModelName:String;
//function GetInspectionManNameFromCode(Code:String):String;
implementation
uses ADODB,PDataModuleMain;
function MultiLink(Fang:Integer):LongInt;
var
i:Integer;
begin
Result:=1;
for i:=1 to Fang do
Result:=Result*2
end;
function NumericPassword(password:String):LongInt;
var
value:LongInt;
ch:LongInt;
shift1:LongInt;
shift2:LongInt;
i:Integer;
str_len:Integer;
str:Char;
begin
str_len :=length(password);
shift1:=0;
shift2:=0;
value:=0;
For i := 1 To str_len do
begin
str:=password[i];
ch := Integer(str);
value := value Xor (ch * MultiLink(shift1));
value := value Xor (ch * MultiLink(shift2));
shift1 := (shift1 + 7) Mod 19;
shift2 := (shift2 + 13) Mod 23;
end;
NumericPassword := value;
end;
function Cipher(password,from_text:String):String;
var
offset:LongInt;
str_len:Integer;
i:Integer;
ch:Integer;
begin
offset := NumericPassword(password);
RandSeed:=offset;
str_len := length(from_text);
for i := 1 To str_len do begin
ch := ord(from_text[i]);
if (ch >= MIN_ASC) And (ch <= MAX_ASC) Then begin
ch := ch - MIN_ASC;
offset :=trunc((NUM_ASC + 1) * random);
ch := ((ch + offset) Mod NUM_ASC);
ch := ch + MIN_ASC;
Result := Result + Chr(ch);
end;
end;
end;
function Decipher(password,from_text :String):String;
var
offset:LongInt;
str_len:Integer;
i:Integer;
ch:Integer;
begin
offset:=NumericPassword(password);
RandSeed:=offset;
str_len := Length(from_text);
for i :=1 To str_len do begin
ch := ord(from_text[i]);
If (ch >= MIN_ASC) And (ch <= MAX_ASC) Then begin
ch := ch - MIN_ASC;
offset :=trunc((NUM_ASC + 1) * Random);
ch := ((ch - offset) Mod NUM_ASC);
If ch < 0 Then ch := ch + NUM_ASC;
ch := ch + MIN_ASC;
Result:=Result+ Chr(ch);
end;
end;
End;
{function GetInspectionManNameFromCode(Code:String):String;
var
ADODataSetTmp:TADODataSet;
begin
GetInspectionManNameFromCode:='';
ADODataSetTmp:=TADODataSet.Create(Nil);
ADODataSetTmp.CommandType:=cmdText;
ADODataSetTmp.CursorType:=ctOpenForwardOnly;
ADODataSetTmp.LockType:=ltReadOnly;
ADODataSetTmp.CommandText:='select * from InspectionMan where IMCode='+
''''+Code+'''';
ADODataSetTmp.Connection:=DataModuleMain.ADOConnectionBarCode;
ADODataSetTmp.Open;
ADODataSetTmp.Connection:=Nil;
if not ADODataSetTmp.Eof then
GetInspectionManNameFromCode:=ADODataSetTmp.FieldByName('IMName').Value;
ADODataSetTmp.Close;
ADODataSetTmp.Free;
end;}
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -