Ver Mensaje Individual
  #5  
Antiguo 02-06-2014
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.109
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Tal vez esta tarde he metido la pata al probar codificando la cadena cifrada en "base 64": he probado de nuevo y he podido comprobar que, en efecto, codificar la cadena cifrada tal vez sea una solución. No sé si lo será para mi problema en concreto, puesto que no puedo probarlo todavía en el programa en cuestión, pero, en un programa de prueba que estoy haciendo aquí, en efecto, algo así funciona como se espera:

Código Delphi [-]
uses
  StrUtils, IdCoderMIME, UCipher;

function Encode(str : string) : string;
var
  encoder : TIdEncoderMIME;
begin
  encoder := TIdEncoderMIME.Create();
  try
    result := encoder.Encode(str);
  finally
    encoder.Free();
  end;
end;

function Decode(str : string) : string;
var
  decoder : TIdDecoderMIME;
begin
  decoder := TIdDecoderMIME.Create();
  try
    result := decoder.DecodeString(str);
  finally
    decoder.Free();
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
const
  SAMPLE_TEXT = 'Hello dolly how are you I am fine ok goodbye. ';
var
  cipher : TCipher;
  encryptedText : string;
begin
  cipher := TCipher.Create();
  try
    encryptedText := cipher.EncryptString(DupeString(SAMPLE_TEXT, 150), 'password', haSHA512);

    Memo1.Text := Encode(encryptedText);

    ShowMessage(cipher.DecryptString(Decode(Memo1.Text), 'password', haSHA512));
  finally
    cipher.Free();
  end;
end;

Como puede verse estamos guardando la cadena cifrada en el "TMemo", no obstante, lo hacemos codificándola en "base 64". Pues bien, después de descodificarla de nuevo podemos descifrarla obteniendo como resultado la cadena original. Mañana comentaré si al final consigo que esto también funcione donde lo necesito.

P.D. Gracias Casimiro por hacerme mirar esto más despacio.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 02-06-2014 a las 01:18:21.
Responder Con Cita