Шифрование AES на Python, расшифровка на PHP «неправильная длина блока»Python

Программы на Python
Ответить
Anonymous
 Шифрование AES на Python, расшифровка на PHP «неправильная длина блока»

Сообщение Anonymous »

Я получаю сообщение об ошибке в php «ошибка: 1C80006B: Подпрограммы поставщика:: неправильная длина конечного блока».
выполняю следующий код для шифрования на Python (в частности, micropython 1.24 2024-10- 25) и следующий блок кода для расшифровки на php8.2.

Код: Выделить всё

import cryptolib
import binascii

key= b'a0354928143197a743984e2fa023b7ba'
iv= b'cee675e8012e6d7d0984d1524885d7ab'

def ency( plain):
aes= cryptolib.aes( key, 2, binascii.unhexlify( iv))
plain= plain + ((16 - len( plain) %16) *  b' ')
oo= aes.encrypt( plain)
return binascii.b2a_base64( oo, newline=False)

ency(  b'plain text to encrypt')

Код: Выделить всё

$key= 'a0354928143197a743984e2fa023b7ba';
$iv= 'cee675e8012e6d7d0984d1524885d7ab';

echo openssl_decrypt(  'DDqFxr2kMvhSRCkI0HTzs+IpxaKnCvKc71j5him8AzE=', 'aes-256-cbc', $key, $options= 0, hex2bin( $iv), $tag);

while($oo= openssl_error_string())
echo $oo;
я проверил наличие base64 mod 4,
добавил base64_decode и OPENSSL_RAW_DATA в php,
использовал hexlify и hex2bin,
есть идеи, что изменить?
какое-то дополнение?
этот код в обратном порядке, кодировка на PHP декодирование на Python работает.
для заполнения автоматически добавляются \x08 и \t.

Подробнее здесь: https://stackoverflow.com/questions/792 ... ock-length
Ответить

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

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

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

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

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