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.