Openssl_encrypt и AES256

может кто знает, как это сделать на PHP

echo "TEST" | openssl enc -e -aes-256-cbc -k 123456 -a -md md5

я попробую как

$iv = openssl_random_pseudo_bytes(16);
$data = base64_encode(openssl_encrypt('TEST', 'aes-256-cbc', $password, OPENSSL_RAW_DATA, $iv));

но не успех ..

Основываясь только на имени этой переменной $password ... Я, конечно, надеюсь, что вы не шифруете пароли для входа в систему, а не хешируете их, как следовало бы.

Bytewave 11.03.2018 23:55

Да, вам нужно хешировать пароли, а не шифровать их.

Mason Stedman 11.03.2018 23:55

ребята: неправильный выбор имени переменной OP (хотя я очень надеюсь, что он не пытается зашифровать пароли). Третий параметр openssl_encrypt - это ключ шифрования.

symcbean 12.03.2018 00:02

ты шутишь?))) я такой тупой и не могу установить переменную $ пароль?) - результат другой, шифрование с консоли и вроде php ...

daziwuso 12.03.2018 00:14
Стоит ли изучать 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 и хотите разрабатывать...
0
4
584
1

Ответы 1

Интересно, что, как и в версии на https://linux.die.net/man/1/enc, на странице руководства для моей локальной установки openssl перечисляется '-md' (без аргумента) в качестве опции для openssl enc, но, похоже, не объясняется, для чего он нужен. openssl вики говорит, что он используется для получения ключа.

Еще немного покопавшись, я нашел это на сайте криптографии SO.

Но прежде чем пытаться написать реализацию, поскольку реализация openssl в некоторой степени эзотерична, возникает вопрос, есть ли необходимость в конкретной поддержке этого в вашей реализации? Если вам просто нужен метод шифрования / дешифрования данных за пределами вашего веб-сайта, вы можете просто написать сценарий PHP для командной строки.

Беглое прочтение связанного документа предполагает, что ....

  $data = base64_encode(openssl_encrypt('TEST', 'aes-256-cbc', md5($password, true), OPENSSL_RAW_DATA, $iv));

Но я ожидаю, что openssl делает что-то еще с ключом в функции деривации, чтобы дополнить 16 байтов необходимыми 128 битами (почему вы заставляете 128-битный ключ для 256-битного алгоритма?)

Спасибо за нормальный ответ;) насчет принудительного алгоритма, я не знаю, я нашел пример на php.net и попытался сделать такой же пример ... я пробую код, когда вы вставляете, но этот пример также не работает; (((и результат другой .. .

daziwuso 12.03.2018 00:28

about -md я тоже пытаюсь найти нормальный ответ, но не могу найти .. что делает этот аргумент ..

daziwuso 12.03.2018 00:29

openssl с рабочим вариантом возвращается как эта зашифрованная строка U2FsdGVkX1+EHk4P8i2vv68U0k6ff0nn3MNxCWQnKOga3FQJKZjV2Nv3CKm3‌​6eUH, ваш вариант возвращается как этот SSUsMVwk7XEJPVEmnHHTBA==

daziwuso 12.03.2018 00:36

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

symcbean 12.03.2018 10:33

возможно ... я попробую больше вариантов сегодня, но все равно ничего ... я думаю, что лучше использовать openssl_digest, но я все еще не понимаю, как ... если зашифровать все сообщение, текст выглядит нормально, но не работает ... если шифрование только ключи Укус опять мал.

daziwuso 12.03.2018 13:00

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