繁体   English   中英

我可以解密通过PHP加密的C ++中的数据吗?

[英]Can I decrypt data in C++ encrypted via PHP?

我正在使用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模式,我可以使它工作。 那么CBC和2之间存在一些问题。

使用ECB模式是必经之路。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM