Всем привет.
Мне нужно зашифровать строку на php и расшифровать в python обычным AES-256-ECB.
вот код:
function create_hash($var1, $var2, $var3) {
$key = 'hVyzdDQmDqanzkUDowPtere17cvNN3Lm';
$input_string = $var1 . ' ' . $var2 . ' ' . $var3;
$hash = openssl_encrypt($input_string, 'AES-256-ECB', $key);
//make hash url safety
$hash = strtr( $hash, '+/', '-_' );
return $hash;
}
Но при расшифровке на пайтоне часто в строку добавляются лишние символы:
если добавить в опции к openssl_encrypt OPENSSL_ZERO_PADDIN, то лишние символы пропадают, но появляется другая проблема. Теперь можно при шифровании получить ошибку
error:0607F08A:digital envelope routines:EVP_EncryptFinal_ex:data not multiple of block length
Насколько я понял, что бы не было проблем, шифруемая строка должна быть кратной длины? 8? 16? Как добить до кратности, дополнить пробелами?