我使用rijndael密码解密从PHP发送到Delphi的字符串时遇到问题.我在PHP端使用mcrypt,在Delphi端使用DCP_rijndael.
目前我有以下代码.
PHP:
function encRJ($key, $iv, $data)
{
$r = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $data, MCRYPT_MODE_CBC, $iv);
$r = base64_encode($r);
return $r;
}
Run Code Online (Sandbox Code Playgroud)
在德尔福:
function decRJ(Data: string; Key: string; IV: string): string;
var ciph: TDCP_rijndael;
begin
Data := Base64DecodeStr(Data);
ciph:= TDCP_rijndael.Create(Self);
ciph.Init(Key[1], 256, @IV[1]);
ciph.DecryptCBC(Data[1], Data[1], Length(Data));
ciph.Free;
Result := Data;
end;
Run Code Online (Sandbox Code Playgroud)
我尝试在互联网上使用几个单元来实现密码,并且发现大多数人都在谈论DCP组件.即便如此,我还是没有设法正确解密.我已经尝试使用Byte数组作为参数,AnsiStrings,WideStrings等,但遗憾的是没有运气.
对不起,如果我在这里遗漏了一些非常明显的东西,因为经过几个小时的搜索后,我脑子里的状态并不好.