-->

我可以在C解密数据++通过PHP加密?(Can I decrypt data in C++ encr

2019-09-22 04:04发布

我使用mcrypt_encrypt和BASE64_ENCODE在PHP中的数据进行加密。 我试着在C ++中对数据进行解密,但无济于事。 我有,我已经使用了多年的C ++ Rijndael算法逻辑,以及BASE64_DECODE逻辑。 后者通过解码PHP的完美BASE64_ENCODE编码字符串。 我使用CBC与PHP和C ++两种。 我已经尝试了不同的块大小等等,但无济于事。 任何意见十分赞赏。

这是我的测试逻辑:

PHP

$key = "qwertyuiopasdfghjklzxcvbnmqwerty";  
$iv = "12345678901234561234567890123456";  
$text = "this is the text to encrypt";
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_CBC, $iv);
echo base64_encode($crypttext)."<br/>";

C ++

char* base64encode = ".. output from php...";  
unsigned char binaryData[256];  
int binaryNumBytes;  
char result[256];  
base64_decode(reinterpret_cast<unsigned char*>(base64encode), strlen(base64encode),       binaryData, &binaryNumBytes, false);  
Encryption::Rijndael rijndael;  
char* key = "qwertyuiopasdfghjklzxcvbnmqwerty";  
char* iv = "12345678901234561234567890123456";  
rijndael.Init(Encryption::Rijndael::CBC, reinterpret_cast<const char*>(key), 32, 32,    reinterpret_cast<const char*>(iv));  
rijndael.Decrypt(reinterpret_cast<const char*>(binaryData), reinterpret_cast<char*>(result), 32);  
cout << result << endl; 

编辑:如果我使用ECB模式,我能得到这个工作。 有一些问题,然后与2之间CBC。

Answer 1:

使用ECB模式是要走的路。



文章来源: Can I decrypt data in C++ encrypted via PHP?