Как я быстро шифрую файл с AES?

Я хочу зашифровать файл с помощью AES-256. Как я могу сделать это быстро и легко, и как может я - или кто-то еще - дешифрует его снова?

81
задан 9 September 2011 в 08:46

7 ответов

К сожалению, нет никакого легкого решения обеспечения Вашего материала. Думайте о своем примере использования, возможно, что-то другое, чем плоскость, AES лучше подходит.


Если Вы хотите очень простое независимое от платформы шифрование, можно использовать openssl.

Пожалуйста, примите во внимание: Вы можете использовать это для сокрытия birthday-gift-ideas.txt от соседа по комнате, но не ожидаете, что это будет безопасно против решительного взломщика!

  1. Как был указан в комментариях, этот метод использует наивную ключевую функцию деривации, таким образом, Ваш пароль должен быть в высшей степени хорошим для Вас, чтобы иметь шанс того, чтобы быть безопасным.
  2. Кроме того, этот метод не аутентифицирует шифрованный текст, что означает, что взломщик может изменить или повредить содержание без Вас замечающий.
  3. Для многих типов безопасности шифрование достаточно просто (например, Вы не можете только использовать шифрование для передачи надежно),

Если Вы все еще хотите использовать 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 инструментами / инспектор и проверьте, отправляют ли они что-нибудь прежде, чем ввести в Вашем сильном пароле.

86
ответ дан 22 November 2019 в 23:12

7z (когда опция пароля используется) использует Шифрование AES на 256 битов (с ключом SHA256, простирающимся).

Установите его (p7zip-full), щелкните правой кнопкой по файлу или каталогу, Вы хотите зашифровать, и выбрать Compress.7z и Другие опции,/Password.

enter image description here

Для дешифрования щелкните правой кнопкой по.7z файлу и выберите Extract здесь.

16
ответ дан 22 November 2019 в 23:12

aescrypt

Связанный веб-сайт содержит 256-разрядную AES с открытым исходным кодом, шифруют/дешифруют инструмент, и является многоплатформенным - MacOs, Windows, Linux и другие через Java.

Зашифруйте: aescrypt -e <file>

Дешифруйте: aescrypt -d <file>

Вы могли скопировать и зашифровать свою домашнюю папку с помощью синтаксиса:

tar -cvf - /home/<home_folder> | aescrypt -e -p <password_message> - > backup.tar.aes

установка человечности

Загрузите и извлеките источник

make
sudo make install

другие платформы

Загрузите двоичные файлы или исходный код с веб-сайта.

4
ответ дан 22 November 2019 в 23:12

Мне нравится использовать gpg команда:

Зашифруйте:

gpg --cipher-algo AES256 --symmetric filename.tar.gz

Стенография:

gpg --cipher-algo AES256 -c filename.tar.gz

Это попросит пароль.

Дешифруйте:

gpg --output filename.tar.gz --decrypt filename.tar.gz.gpg

Стенография:

gpg -o filename.tar.gz -d filename.tar.gz.gpg

Можно также добавить cipher-algo AES256 кому: ~/.gnupg/gpg.conf сделать AES256 значением по умолчанию. (Согласно странице справочника это - CAST5),

26
ответ дан 22 November 2019 в 23:12

Много предложений, которые я сделал бы, было уже выдвинуто в этом потоке. В основном openssl является действительно самым легким способом пойти о шифровании файла или сценария. Однако я предостерег бы против использования AES-256 просто, потому что это не доступно во всех версиях openssl на некоторых платформах. Большинство более новых Ose... т.е. Linux имеют его. Но другие, такие как AIX 5.3 не делают (я думаю HP-UX также). Если Вы намереваетесь использовать свой файл или сценарий через различные платформы, я настоятельно рекомендую использовать AES-128, потому что это доступно везде.

Как может, Вы "быстро и легко" шифруете файл с помощью AES-128?

Сайт как www.ShellScrypt.com использует openssl AES-128 вполне сильно для шифрования сценариев оболочки и затем делает зашифрованные копии исполняемого файла сценариев. Все, что необходимо сделать, вставить сценарий на сайт, и zip-файл будет сгенерирован для Вас. Тот zip-файл будет содержать зашифрованный (и исполняемый файл, если это будет сценарий), версия Вашего файла. Это позволяет Вам "легко", и "удобно" зашифруйте файл/сценарий, не имея необходимость удовлетворять любой пакет или требование модуля к каждой системе, на которой Вы намереваетесь использовать сценарий или выполнить несколько комплексов и запутывающих заклинаний команд openssl.

Показанный ниже основное, шифруют / дешифруют openssl, управляют что AES-128 использования:

test@test-VirtualBox:~$ 
test@test-VirtualBox:~$ echo precious-content | openssl aes-128-cbc -a -salt -k mypassword
U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z
test@test-VirtualBox:~$
test@test-VirtualBox:~$ echo U2FsdGVkX1+K6tvItr9eEI4yC4nZPK8b6o4fc0DR/Vzh7HqpE96se8Fu/BhM314z | openssl aes-128-cbc -a -d -salt -k mypassword
precious-content
test@test-VirtualBox:~$ 
test@test-VirtualBox:~$
3
ответ дан 22 November 2019 в 23:12

Добавляя к ответу Stefano Palazzo, я создал немного функции удара, которая работает так же к команде base64.

Это будет, aes256 зашифровать файл, и затем base64 кодируют его. При выполнении реверса это будет base64 декодировать, дешифровать и затем выкладывать исходный простой текст.

aes256() {
  decodeMe=""
  isPipe="$([ ! -t 0 ] && echo "true" || echo "false")"

  if [ "$1" = '-d' ] || [ "$1" = '--decode' ]; then
    decodeMe="-d"
    shift
  fi

  if [ "$isPipe" = "true" ]; then
    read input
    printf '%s\n' "$input" | openssl aes-256-cbc -a $decodeMe
    exitCode="$?"
  else
    openssl aes-256-cbc -a $decodeMe -in "$*"
    exitCode="$?"
  fi

  unset isPipe decodeMe input
  return "$exitCode"
}

Использование:

echo "my string" | aes256
# enter aes-256-cbc encryption password
# Returns: U2FsdGVkX1++e/BhBGlNOzNvarqq7zI13S/hbiKVzXQ=

echo "U2FsdGVkX1++e/BhBGlNOzNvarqq7zI13S/hbiKVzXQ=" | aes256 -d
# enter aes-256-cbc decryption password
# Returns: my string

aes256 file.plain > file.crypt
# enter aes-256-cbc encryption password

aes256 -d file.crypt
# enter aes-256-cbc decryption password
# Spits out original unencrypted file.
1
ответ дан 22 November 2019 в 23:12

Упоминание последней опции добавлено в openssl начиная с OpenSSL 1.1.0. Основываясь на ответе stefano-palazzo:

openssl enc -aes-256-cbc -a -e -in input.tar.gz -out oupput.enc -pbkdf2 -iter 1000000 -md sha512

Он использует функцию получения ключа , отсутствие которой значительно упростило бы подбор пароля.
Для расшифровки используйте:

openssl enc -aes-256-cbc -a -d -in output.tar.xz.enc -out output.tar.xz -pbkdf2 -iter 1000000 -md sha512

Объяснение аргументов:
enc означает шифрование
-aes-256-cbc является хорошим способом использования AES шифр
-a base64 ваши данные после шифрования или до расшифровки
-d расшифровать
-e зашифровать
-in входной файл
-out выходной файл
-pbkdf2 растягивает ключ, чтобы его было трудно сломать Функция получения ключа
-iter итерации для растягивания ключа, чем больше, тем выше безопасность и достаточное число описано здесь
-md sha512 заменяет хеш-функцию PBKDF2 на SHA512, которая более безопасна, чем SHA256 по умолчанию
-salt не упоминается в команде, потому что она установлен по умолчанию и является очень хорошим способом повышения безопасности, почему то описано здесь

3
ответ дан 15 August 2020 в 16:31

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

Похожие вопросы: