Конвертировать команду openssl в php - PullRequest
0 голосов
/ 04 июня 2019

у меня есть командная строка

echo -n 2bRePass1234 | openssl dgst -sha1 -binary | openssl enc -base64

вывод: 3O3bhZbGKheK + g / M4pp18AwGqq8 = (28 символов)

мне нужно преобразовать его php

что я пробовал,openssl_encrypt нужен ключ $ iv и $.я просто использую random_bytes, потому что не знаю, что является значением по умолчанию, как команда выше

return base64_encode(
           openssl_encrypt(
                sha1('testPass1234'),
                'AES-128-CBC',
                random_bytes(16),
                OPENSSL_RAW_DATA,
                random_bytes(16)
            )
);

Но его doest возвращает тот же результат, что и команда ... Есть ли способ просто использовать ключ по умолчанию и шифр для его генерации?

Примечание: я поставил random_bytes (16), потому что я не знаю, что заполнять, основываясь на команде.

1 Ответ

2 голосов
/ 04 июня 2019

Две вещи ...

  1. Вы делаете dgst (дайджест) при первом вызове openssl, поэтому вы не можете позвонить openssl_encrypt в своем php.
  2. При выполнении дайджеста вам не нужны случайные байты.

Существует как минимум 2 способа сделать это в php

1) Использование функции sha1

php -r "var_dump(base64_encode(pack('H*', sha1('testPass1234'))));"
string(28) "wW+fqYWyUoXq+c76j0j2mnD5Oyc="

2) Использование функции openssl_digest

php -r "var_dump(base64_encode(pack('H*', openssl_digest('testPass1234', 'SHA1'))));"
string(28) "wW+fqYWyUoXq+c76j0j2mnD5Oyc="

Они оба будут возвращать одно и то же.Строка, возвращаемая из sha1, будет упакована в строку реальных битов и не будет рассматриваться как строка.

PS: я видел, что вы пропустили другую строку в образце командной строки и образце php, но всякий раз, когда передавалита же строка, результаты будут одинаковыми.

echo -n testPass1234 | openssl dgst -sha1 -binary | openssl enc -base64
wW+fqYWyUoXq+c76j0j2mnD5Oyc=

Надеюсь, это то, что вы ищете.Ура!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...