Hola, buenas tardes
Estoy intentando utilizar la libreria DCcrypt2 para desencriptar una cadena de texto que consigo a partir de un servicio REST.
utilizando el código inferior se produce el error 'Range check error' en la línea que muestro a continuación
"DCP_rijndael.Init(apisecret[1], 128, @iv[1]);")
¿ alguien sabe porque puede ser o si se puede hacer de otra manera con estos componentes ?
Por otro lado, trabajamos con Delphi 12.1 , ¿ no tiene algo delphi de manera nativa para trabajar con este tipo de encriptado (aes/cbc) ?.
Lo he estado buscando , pero no he encontrado nada.
Código Delphi
[-]
function Decrypt( Astr,apikey,apisecret:String ):string;
var d,s,iv:string;
DCP_rijndael: TDCP_rijndael;
begin
d:= Base64Decodestr(astr);
DCP_rijndael := TDCP_rijndael.Create(self);
try
DCP_rijndael.Algorithm := 'AES/CBC/PKCS5PADDING';
DCP_rijndael.CipherMode := cmCBC;
DCP_rijndael.Init(apisecret[1], 128, @iv[1]);
DCP_rijndael.SetIV(apikey);
DCP_rijndael.DecryptCBC(d,s,Length(d));
finally
DCP_rijndael.free;
end;
end;