Используя онлайн-инструмент шифрования / дешифрования, используя DES-ECB, я могу зашифровать 8-значное шестнадцатеричное число с помощью 8-значного шестнадцатеричного ключа, в результате чего получается 8-значный шестнадцатеричный результат. Я могу расшифровать результат из 8 цифр с помощью того же ключа и получить зашифрованные исходные данные.
Однако я не могу воспроизвести это локально с помощью PHP. Оказывается, зашифрованный результат, который я получаю в Интернете, - это первые 8 из 16 фактически произведенных цифр. Нет проблем ... Но когда я пытаюсь расшифровать локально с помощью PHP, мне нужны все 16 цифр, чтобы получить исходные данные.
Как я могу расшифровать только с 8 цифрами и при этом получить исходные данные,как это делает онлайн-инструмент?
Онлайн-результаты:
Шифрование:
$data = '03 67 A6 7F C2 00 0A DB';
$key = '00 F2 83 CD BA 41 6F FF';
$result = '8b be 0f 3b ae 92 56 07';
Проверка: http://des.online -domain-tools.com / link / 1b40d6agZYE0TFR5sM/
Расшифровка:
$data = '8b be 0f 3b ae 92 56 07';
$key = '00 F2 83 CD BA 41 6F FF';
$result = '03 67 A6 7F C2 00 0A DB';
Проверка: http://des.online -domain-tools.com / link / 1b40e05gD5TNgMb72h /
LocalТест PHP:
$enc = openssl_encrypt( hex2bin('0367A67FC2000ADB'), 'DES-ECB', hex2bin('00F283CDBA416FFF'), 1);
bin2hex($enc)
приводит к 8bbe0f3bae9256071da486ee680f8449
Если я расшифрую только первые 8 шестнадцатеричных цифр, я не получу те же результаты, что и с онлайн-инструментом:
$dec = openssl_decrypt( hex2bin('8bbe0f3bae925607'), 'DES-ECB', hex2bin('00F283CDBA416FFF'), 1);
bin2hex($dec)
приводит к нулю (или ложь, если мы не преобразуем в шестнадцатеричный код)
Но если я введу 16-значный шестнадцатеричный код в качестве зашифрованных данных, я получуправильный результат:
$dec = openssl_decrypt( hex2bin('8bbe0f3bae9256071da486ee680f8449'), 'DES-ECB', hex2bin('00F283CDBA416FFF'), 1);
bin2hex($dec)
приводит к 0367A67FC2000ADB
Это имеет смысл для меня ... но мне нужно иметь возможность получить этот результат только из 8-значного гекса, каконлайн инструмент делает. Что мне нужно сделать, чтобы это стало возможным?