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