Я пытаюсь научиться выполнять простое шифрование/дешифрование между компьютером с Windows 64 (мой компьютер) и PHP, работающим на веб-сервере Linux с использованием openSSL.
На моем компьютере с Windows я установил OpenSSL v1.0.2k для Win64 и использую следующую команду для создания зашифрованной строки с использованием простого пароля и простого ключа, расположенного в файле secretkey.txt.
enc -aes-256-cbc -A -base64 -nopad -nosalt -pass pass:hello -in secretkey.txt
Когда я запускаю команду выше, я получаю следующую строку:
3WE7cuBFhuLCn3/ZBnUrBn68nn3tVn0NKKz63B3uvoc=
Используя приведенную выше строку, я ожидаю, что PHP на моем веб-сервере Linux сможет расшифровать ее следующим образом:
$encrypted = '3WE7cuBFhuLCn3/ZBnUrBn68nn3tVn0NKKz63B3uvoc=';
$enc = 'aes-256-cbc';
$password = 'hello';
$key = openssl_decrypt($encrypted, $enc, $password, OPENSSL_ZERO_PADDING);
echo $key .' should equal this-1234-is-4567-my-8910-secret';
Но вместо этого я получаю это:
9(j����T]��$�W�Ma��S�è��zz�>.( должно быть равно this-1234-is-4567-my-8910-secret
Я просмотрел следующие сайты и попробовал несколько версий, но не могу правильно расшифровать: