Могу ли я расшифровать данные в C ++, зашифрованные с помощью 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.

2

Решение

Использование режима ECB было способом.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector