44 lines
988 B
ObjectPascal
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.
|