https://www.tools4noobs.com/online_tools/encrypt/ выдает «a67a318c98a0307502ba81caade2f3a9» в качестве результата DES ECB для ключа «1234567890abcdef», а полезная нагрузка «шифрует это».
Код PHP
echo bin2hex(mcrypt_encrypt(
MCRYPT_DES,
hex2bin("1234567890abcdef"),
"encrypt this",
MCRYPT_MODE_ECB)) . "\n";
распечатывает «1a29ee87f2ad67644ff28450c676a664».
Что не так с кодом?
noobs4tools сайт удаляет hex2bin
функция и усекает длину ключа до 8 символов (как Йоши заявил в комментариях).
С размером ключа 12345678
вывод как веб-сайта, так и PHP-кода согласован.
Размер ключа DES указан в руководстве как 56 бит. Прочитайте ниже некоторую полезную информацию о конкретных размерах ключей DES.
Как мне создать ключ DES? Почему 7-символьная строка не достаточно?
Ключ, используемый noobs4tools Веб-сайт:
"12345678"
Ключ Используется вашим кодом:
hex2bin("1234567890abcdef"); // 4Vx����
Эта разница дает вам разные результаты.
Таким образом, сайт не переводит ключ в любой другой номер или форму данных. Ожидается, что вы предоставите уже правильно отформатированное значение в скрипте страницы.
Других решений пока нет …