Ver Mensaje Individual
  #5  
Antiguo 29-12-2015
Reasen Reasen is offline
Miembro
NULL
 
Registrado: dic 2015
Ubicación: Barcelona
Posts: 140
Reputación: 9
Reasen Va por buen camino
Este es basicamente

Parte PHP:
Código PHP:
function DecryptStr2($str,$key)
  {
$p=1;

$key_length strlen($key);
$encoded_data base64_decode($str);
 
$length strlen($encoded_data);
for (
$i 1$i $length$i++) {

$result .= chr(ord($encoded_data[i]) ^ ord($key[$p]));
$p++;
if (
$key_length){$p=1;}

}
 return 
$result;
}

$input=$_POST['input'];
echo   
DecryptStr2($input,'ClavePrivada'); 
Parte Delphi:

Código Delphi [-]

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, httpsend, Synacode,
  Vcl.StdCtrls,IdHash,EncdDecd;

Function xorPHP(Text: AnsiString; Pass: AnsiString): AnsiString;
var
  i, p: integer;
  Res: AnsiString;
begin
  p := 1;

  for i := 1 to length(Text) do
  begin
    Res := Res + ansichar(ord(Text[i]) XOR ord(Pass[p]));
    Inc(p);
    if p > length(Pass) then
      p := 1;
  end;
  setlength(result, length(Res));
  result := EncodeBase64(BytesOf(result), length(BytesOf(result)));
end;

function StreamToString(const Stream: TStream): string;
var
  StringBytes: TBytes;
  Encoding: TEncoding;
begin
  Stream.Position := 0;
  SetLength(StringBytes, Stream.Size);
  Stream.ReadBuffer(StringBytes, Stream.Size);
  Result := Encoding.UTF8.GetString(StringBytes);
end;


procedure TForm2.Button1Click(Sender: TObject);
var
  Response: TMemoryStream;
  Key: ansistring;
begin

  Response := TMemoryStream.Create;


   if HttpPostURL('127.0.0.1/test2.php', 'input='+xorPHP('Texto de prueba','ClavePrivada'), Response) then
   showmessage(StreamToString(response));


end;
Responder Con Cita