Я хочу зашифровать файл, используя AES-256. Как я могу сделать это быстро и легко, и как я - или кто-то еще - расшифровать это снова?
источник
Я хочу зашифровать файл, используя AES-256. Как я могу сделать это быстро и легко, и как я - или кто-то еще - расшифровать это снова?
К сожалению, нет простого решения для защиты ваших вещей. Подумайте о своем сценарии использования, может быть, лучше подходит что-то иное, чем простой AES.
Если вы хотите очень простое независимое от платформы шифрование, вы можете использовать openssl .
Если вы все еще хотите использовать openssl:
Шифрование:
openssl aes-256-cbc -in attack-plan.txt -out message.enc
Дешифрирование:
openssl aes-256-cbc -d -in message.enc -out plain-text.txt
Вы можете получить openssl для base64
кодирования сообщения, используя -a
переключатель шифрования и дешифрования. Таким образом, вы можете вставить зашифрованный текст, например, в сообщение электронной почты. Это будет выглядеть так:
stefano:~$ openssl aes-256-cbc -in attack-plan.txt -a
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
U2FsdGVkX192dXI7yHGs/4Ed+xEC3ejXFINKO6Hufnc=
Обратите внимание, что у вас есть выбор шифров и режимов работы. Для нормального использования я рекомендую AES 256 в режиме CBC. Доступны следующие режимы шифрования (только подсчет AES):
aes-128-cbc ← this is okay
aes-128-ecb
aes-192-cbc
aes-192-ecb
aes-256-cbc ← this is recommended
aes-256-ecb
Смотрите также:
Пожалуйста, обратите внимание:
OpenSSL попросит вас ввести пароль. Это не ключ шифрования, он не ограничен 32 байтами! Если вы собираетесь передавать файлы кому-то еще, ваш общий секрет должен быть очень надежным. Вы можете использовать этот сайт, чтобы понять, насколько хорош ваш пароль:
Предупреждение: я проверил, что эти сайты не отправляют ваш пароль на сервер, но это может измениться в любое время. Используйте эти сайты с dev tools / inspector и проверьте, отправляют ли они что-нибудь, прежде чем вводить надежный пароль.
openssl aes-256-cbc
корочеopenssl enc -aes-256-cbc
и тоже работает. Страница справочника для этого доступна при запускеman enc
. Никогда не используйтеecb
для данных, которые не должны быть изменены, всегда используйтеcbc
.-salt
избыточно, так как это по умолчанию. Если вы пропустите,-out filename
вывод будет записан в стандартный вывод, что полезно, если вам просто нужно анализировать данные, а не записывать их на диск. Следующая команда , показывает cound линии для открытого текста:openssl aes-256-cbc -d -in filename | wc -l
. (другое использование, чтение файла:openssl aes-256-cbc -d -in filename | less
)/usr/bin/openssl enc -aes-256-cbc -a -salt -in $1 -out ${1}.enc
с обратным, как и следовало ожидать.openssl
инструмент командной строки в основном является проверкой концепции для тестирования библиотеки OpenSSL. Правильный ответ на этот вопрос - либо GPG, либо какой-нибудь архиватор, такой как 7z .openssl enc
на самом деле это не так безопасно, если у вас слабый пароль. Ранее я рекомендовал определенное использованиеopenssl enc
, но теперь предлагаю использоватьgpg
вместо этого, потому что он использует KDF лучше. Смотрите этот ответ .Мне нравится использовать
gpg
команду:Шифрование:
Стенография:
Это попросит пароль.
Расшифровать:
Стенография:
Вы можете также добавить
cipher-algo AES256
к~/.gnupg/gpg.conf
сделать AES256 по умолчанию. (Согласно manpage это CAST5 )источник
AES
(имеется в виду AES-128). AES-128 немного быстрее и не менее безопасен.gpg
кеширование пароля?7z (когда используется опция пароля ) использует 256-битное шифрование AES (с растяжением ключа SHA256 ).
Установите его (
p7zip-full
), щелкните правой кнопкой мыши файл или каталог, который хотите зашифровать, и выберите « Сжать» , « .7z» и « Другие параметры / Пароль» .Для дешифрования щелкните правой кнопкой мыши файл .7z и выберите « Извлечь здесь» .
источник
aescrypt
Связанный веб-сайт содержит 256-битный инструмент шифрования / дешифрования с открытым исходным кодом и является мультиплатформенным - MacO, Windows, Linux и другие через Java.
Шифрование:
aescrypt -e <file>
Расшифровать:
aescrypt -d <file>
Вы можете сделать резервную копию и зашифровать вашу домашнюю папку, используя синтаксис:
установка убунту
Скачайте и распакуйте исходный код
другие платформы
Загрузите двоичные файлы или исходный код с сайта.
источник
Многие из предложений, которые я бы сделал, уже были изложены в этой теме. По сути, openssl - это действительно самый простой способ зашифровать файл или скрипт. Однако я бы предостерег от использования AES-256 только потому, что он не доступен во всех версиях openssl на некоторых платформах. Большинство новых операционных систем ... то есть Linux есть. Но другие, такие как AIX 5.3, этого не делают (я думаю, что HP-UX также). Если вы собираетесь использовать свой файл или скрипт на разных платформах, я настоятельно рекомендую использовать AES-128, потому что это доступно везде.
Как можно «быстро и легко» зашифровать файл с помощью AES-128?
Сайт, подобный www.ShellScrypt.com, довольно активно использует openssl AES-128 для шифрования сценариев оболочки, а затем делает зашифрованные копии сценариев исполняемыми. Все, что вам нужно сделать, это вставить скрипт на сайт, и вам будет создан zip-файл. Этот zip-файл будет содержать зашифрованную (и исполняемую, если это скрипт) версию вашего файла. Это позволяет вам « легко » и « удобно » зашифровать файл / скрипт без необходимости выполнять какие-либо требования к пакетам или модулям в каждой системе, для которой вы собираетесь использовать скрипт, или выполнять несколько сложных и запутанных заклинаний команд openssl.
Ниже показана базовая команда шифрования / дешифрования openssl , использующая AES-128:
источник
Добавляя к ответу Стефано Палаццо, я создал небольшую функцию bash, которая работает аналогично команде base64.
Он зашифрует файл, а затем закодирует base64. При обратном выполнении, base64 декодирует, дешифрует, а затем выплевывает исходный открытый текст.
Использование:
источник