LMS-2_ReportAPI/xpaccessunit.pas
Алексей Заблоцкий d6ad951e55 Первая версия
2023-10-18 22:41:44 +03:00

44 lines
988 B
ObjectPascal

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