pyopenssl — PHP OpenSSL Encrypt против Encypt командной строки

У меня были некоторые проблемы со встроенными методами для PHP OpenSSL. Я пытаюсь сузить проблему, пробуя разные методы. Я пытаюсь следующее:

$input = "this is a test string";
$opensslCommand = "echo \"{$input}\" | openssl enc -AES-128-CBC -a -nosalt -K " . bin2hex($hashing_secret) . " -iv ". bin2hex($iv);

$first = openssl_encrypt($input, "AES-128-CBC", $hashing_secret, 0, $iv);
$second = exec($opensslCommand);

print(urlencode($first) . "<br/>");
print(urlencode($second) . "<br/>");

тем не менее, результат выше:

hn%2FZkGKl9EQ7XgFFytcPkTPxJST2jCKEVDoojmkz8xs%3D
hn%2FZkGKl9EQ7XgFFytcPkdQESeAPqlFNwJivth28m9o%3D

Как видите, они начинают расходиться в середине вывода. У меня неправильная конфигурация для встроенной или командной строки?

Стороннее редактирование:
Делать больше смысла на выходе:

Base64 кодируется:
hn/ZkGKl9EQ7XgFFytcPkTPxJST2jCKEVDoojmkz8xs=
hn/ZkGKl9EQ7XgFFytcPkdQESeAPqlFNwJivth28m9o=

В шестнадцатеричном виде:
867FD990 62A5F444 3B5E0145 CAD70F91 33F12524 F68C2284 543A288E 6933F31B
867FD990 62A5F444 3B5E0145 CAD70F91 D40449E0 0FAA514D C098AFB6 1DBC9BDA

-1

Решение

echo виновник здесь Есть определенный параметр, который вы можете использовать с echo для подавления новой строки, которую он добавляет к входной строке: -n, Оказывается, это было связано с моим вкладом в openssl.

$opensslCommand = "echo -n \"{$input}\" | openssl enc -AES-128-CBC -a -nosalt -K " . bin2hex($hashing_secret) . " -iv ". bin2hex($iv);

правильная команда

2

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

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

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