Buenas noches a todos amigos, ando aquí con una gran duda para poder descifrar una cadena en Android.
Les cuento. Tengo una cadena que cifro mediante el código para cifrar con AES256 que Seoane nos compartió y que funciona en una aplicación Delphi sin problemas. Ahora requiero descifrar esa misma cadena pero en Android. El método que descifra en Delphi funciona perfecto pero en Android me marca un error: Out of Memory.
function Convierte(Str,Clave: String): String; var Src: TMemoryStream; Dst: TStringStream; Size: Integer; Key: TAESKey; ExpandedKey: TAESExpandedKey; begin Result:= EmptyStr; Src:= TMemoryStream.Create; try Dst:= TStringStream.Create(Str); try StrToStream(Str,Src); Src.Position:= 0; FillChar(Key,Sizeof(Key),#0); if Length(Clave) > Sizeof(Key) then move(PChar(Clave)^,Key,Sizeof(key)) else move(PChar(Clave)^,Key,Length(Clave)); AESExpandKey(ExpandedKey,Key); // Leemos el tamaño del texto Src.ReadBuffer(Size,Sizeof(Size)); ConvierteStreamECB(Src,Dst,ExpandedKey); Dst.Size:= Size; // AQUI DA EL ERROR DE OUT OF MEMORY Result:= Dst.DataString; finally Dst.Free; end; finally Src.Free; end; end;
Sigo investigando... alguna idea ?
Saludox !