Получение ошибки при расшифровке строки, зашифрованной AES, в CppC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Гость
 Получение ошибки при расшифровке строки, зашифрованной AES, в Cpp

Сообщение Гость »


Когда я расшифровал строку с помощью функции дешифрования, я получил несколько избыточных символов. На самом деле этот код написан для шифрования и дешифрования необработанных байтов.

Вот мой код.

Сценарий шифрования AES Python:

импортировать систему из Crypto.Cipher импортировать AES из панели импорта Crypto.Util.Padding из Crypto.Random импорт get_random_bytes импортировать хеш-библиотеку def encrypt_string(открытый текст, ключ): iv = 16 * b'\x00' шифр = AES.new(hashlib.sha256(key).digest(), AES.MODE_CBC, iv) ciphertext = cipher.encrypt(pad(plaintext.encode(), AES.block_size)) вернуть зашифрованный текст КЛЮЧ = get_random_bytes(16) пытаться: открытый текст = ввод(">> ") кроме: print("Требуется входная строка!") sys.exit() зашифрованный текст = encrypt_string (открытый текст, КЛЮЧ) print('AESkey[] = { 0x' + ', 0x'.join(hex(x)[2:] for x в KEY) + ' };') print('payload[] = { ' + ', '.join(str(x) for x в зашифрованном тексте) + ' };') Функция расшифровки CPP:
int AESDecrypt(char * payload, unsigned int payload_len, char * key, size_t keylen) { ХКРИПТПРОВ hProv; HCRYPTHASH hHash; ХКРИПТКЕЙ hKey; if (!CryptAcquireContextW(&hProv, NULL, NULL, PROV_RSA_AES, CRYPT_VERIFYCONTEXT)){ вернуть -1; } if (!CryptCreateHash(hProv, CALG_SHA_256, 0, 0, &hHash)){ вернуть -1; } if (!CryptHashData(hHash, (BYTE*)key, (DWORD)keylen, 0)){ вернуть -1; } if (!CryptDeriveKey(hProv, CALG_AES_256, hHash, 0,&hKey)){ вернуть -1; } if (!CryptDecrypt(hKey, (HCRYPTHASH) NULL, 0, 0, полезная нагрузка, &payload_len)){ вернуть -1; } CryptReleaseContext(hProv, 0); CryptDestroyHash(hHash); CryptDestroyKey(hKey); вернуть 0; }
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»