Openssl_encrypt (... string $ method ...) Синтаксис

Я не смог найти эту информацию ни здесь, ни в Google, поэтому быстрый вопрос: при использовании openssl_encrypt должен ли я использовать фактические имена шифров (например, "bf-cbc") или можно использовать псевдонимы (например, "blowfish")?

FWIW, я использую PHP 5.6.34.

Дополнительный вопрос: согласно документации PHP, некоторые методы оказались слабыми, поэтому какой из оставшихся методов самый сильный или какой самый сильный?

"Чтобы получить список доступных методов шифрования, используйте openssl_get_cipher_methods ()". Доступные шифры зависят от openssl, установленного на машине.
Peter 01.04.2018 22:58

@Peter хорошо, я не знал, что доступные шифры зависят от openssl, установленного на машине, но это не относится к пункту / вопросу

oldboy 01.04.2018 22:59

Нет, это не так. openssl_get_cipher_methods () возвращает все допустимые строки, которые вы можете использовать.

Peter 01.04.2018 23:01

@ Питер, ты не понимаешь мой вопрос. Если вы читали документацию PHP, при запуске оператора openssl_get_cipher_methods(TRUE) он возвращает список псевдонимов. МОЙ ВОПРОС заключается в том, следует ли или могу ли я использовать псевдонимы и / или фактические имена шифров при выполнении функции openssl_encrypt() ... я думал, что мой первоначальный вопрос был довольно простым ...

oldboy 01.04.2018 23:03
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
4
203
1

Ответы 1

Не используйте псевдонимы, будьте как можно более конкретными с шифром, который вы собираетесь использовать.

AES, вероятно, является наиболее подходящим алгоритмом для использования здесь. Также важен режим, который вы используете. Имея это в виду, я бы расставил приоритеты в следующем порядке:

  • aes-*-gcm
  • aes-*-ctr
  • aes-*-cbc

Где *, очевидно, один из 256/192/128. Помните, что каждый из вышеперечисленных режимов имеет разные требования к безопасности. GCM требует 96-битного одноразового номера и не требует дополнительной аутентификации. CTR обычно использует 128-битный одноразовый номер и требует MAC для обеспечения безопасности. Использование одного и того же одноразового номера и ключа для двух разных сообщений в режиме GCM или CTR откроет открытый текст, поэтому никогда не делай этого. Для защиты CBC требуется 128-битный IV и MAC.

Я предлагаю вам просмотреть код в этот репозиторий для примера безопасного шифрования в PHP.

Спасибо! Очень ценю информацию. Кроме того, из любопытства, можно ли использовать псевдонимы в возможный?

oldboy 02.04.2018 00:01

Они используются для шифрования, где аутентификация не требуется. Есть также способы использования, в которых аутентификация может быть нежелательной.

zaph 02.04.2018 03:20

Другие вопросы по теме