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.