LMS-2_ReportAPI/xpaccessunit.pas
2023-10-19 13:08:34 +03:00

44 lines
939 B
ObjectPascal

unit xpAccessUnit;
{$H+}
interface
uses
DCPcrypt2;
function EncryptText(const AText: String; aHash: TDCP_hash) : String;
function MySQLPassword(const AText: Ansistring; aHash: TDCP_hash) : Ansistring;
implementation
uses
SysUtils,
Variants;
function DecryptText(const AText: string) : string;
begin
Result := AText;
end;
function EncryptText(const AText: String; aHash: TDCP_hash): String;
begin
Result := String(MySQLPassword(AnsiString(StringReplace(AText, '\', '\\', [rfReplaceAll, rfIgnoreCase])),aHash));
end;
function MySQLPassword(const AText: Ansistring; aHash: TDCP_hash): Ansistring;
var
Digest: packed array[0..19] of byte;
i: integer;
begin
Result := '*';
aHash.Init;
aHash.UpdateStr(AText);
aHash.Final(Digest);
aHash.Burn;
aHash.Init;
aHash.Update(Digest,20);
aHash.Final(Digest);
aHash.Burn;
for i:= 0 to 19 do
Result := Result + AnsiString(IntToHex(Digest[i], 2));
end;
end.