Я не смог найти эту информацию ни здесь, ни в Google, поэтому быстрый вопрос: при использовании openssl_encrypt должен ли я использовать фактические имена шифров (например, "bf-cbc") или можно использовать псевдонимы (например, "blowfish")?
FWIW, я использую PHP 5.6.34.
Дополнительный вопрос: согласно документации PHP, некоторые методы оказались слабыми, поэтому какой из оставшихся методов самый сильный или какой самый сильный?
@Peter хорошо, я не знал, что доступные шифры зависят от openssl, установленного на машине, но это не относится к пункту / вопросу
Нет, это не так. openssl_get_cipher_methods () возвращает все допустимые строки, которые вы можете использовать.
@ Питер, ты не понимаешь мой вопрос. Если вы читали документацию PHP, при запуске оператора openssl_get_cipher_methods(TRUE) он возвращает список псевдонимов. МОЙ ВОПРОС заключается в том, следует ли или могу ли я использовать псевдонимы и / или фактические имена шифров при выполнении функции openssl_encrypt() ... я думал, что мой первоначальный вопрос был довольно простым ...






Не используйте псевдонимы, будьте как можно более конкретными с шифром, который вы собираетесь использовать.
AES, вероятно, является наиболее подходящим алгоритмом для использования здесь. Также важен режим, который вы используете. Имея это в виду, я бы расставил приоритеты в следующем порядке:
aes-*-gcmaes-*-ctraes-*-cbcГде *, очевидно, один из 256/192/128. Помните, что каждый из вышеперечисленных режимов имеет разные требования к безопасности. GCM требует 96-битного одноразового номера и не требует дополнительной аутентификации. CTR обычно использует 128-битный одноразовый номер и требует MAC для обеспечения безопасности. Использование одного и того же одноразового номера и ключа для двух разных сообщений в режиме GCM или CTR откроет открытый текст, поэтому никогда не делай этого. Для защиты CBC требуется 128-битный IV и MAC.
Я предлагаю вам просмотреть код в этот репозиторий для примера безопасного шифрования в PHP.
Спасибо! Очень ценю информацию. Кроме того, из любопытства, можно ли использовать псевдонимы в возможный?
Они используются для шифрования, где аутентификация не требуется. Есть также способы использования, в которых аутентификация может быть нежелательной.