PHP OpenSSL зашифрованный с алгоритмом DES-CBC неожиданный вывод

Я хочу изменить все пароли данной БД. Все эти пароли зашифрованы с помощью DES CBC PKCS7, у меня есть ключ и вектор инициализации. Я использовал следующую веб-страницу http://www.txtwizard.net/crypto расшифровать один пароль, и результат был ожидаемым (с использованием параметров DES, CBC и PKCS7).

ключ: RRZy0njZDzw =

IV: р / 34qWLNYfg =

простой текст 123123

зашифрованный текст x541kJ4KvJo =

Но когда следующий код написан на PHP, я не могу воспроизвести результат:

<?php
$key = "RRZy0njZDzw=";
$iv = "p/34qWLNYfg=";
$data = "123123";
$cipher='DES-CBC';
var_dump(openssl_get_cipher_methods());
$encrypted = openssl_encrypt($data,$cipher, $key,OPENSSL_RAW_DATA,$iv);
echo base64_encode($encrypted);
?>

Выход этого кода:

PHP Warning:  openssl_encrypt(): IV passed is 12 bytes long which is longer than the 8 expected by selected cipher, truncating in /home/sergio/Documents/DevEnvTest/siaf/aes2hash.php on line 7

Warning: openssl_encrypt(): IV passed is 12 bytes long which is longer than the 8 expected by selected cipher, truncating in /home/sergio/Documents/DevEnvTest/siaf/aes2hash.php on line 7
gB7ahDoYZqI=

Есть ли способ получить ту же строку, что и онлайн-инструмент?

0

Решение

Вам нужно декодировать ваш ключ и IV из Base64:

$key = base64_decode("RRZy0njZDzw=");
$iv = base64_decode("p/34qWLNYfg=");
3

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

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

По вопросам рекламы [email protected]