Ответы:
Я думаю, что это будет GPG. Хотя синтаксис для файлов и каталогов отличается.
Для файлов (выводит filename.gpg):
gpg -c filename
Для директоров:
gpg-zip -c -o file.gpg dirname
Для файлов (выводит filename.gpg):
gpg filename.gpg
Для директоров:
gpg-zip -d file.gpg
Редактировать: Исправлено как @ Mk12 указывает на ошибку сжатия / распаковки для шифрования / дешифрования.
openssl des3 -salt -in unencrypted-data.tar -out encrypted-data.tar.des3
Расшифровать:
openssl des3 -d -salt -in encrypted-data.tar.des3 -out unencrypted-data.tar
aescrypt -e -p password file.jpg
Расшифровать:
aescrypt -d -p password file.jpg.aes
Это мой метод с использованием openssl и tar
Открыть зашифрованный каталог:
openssl enc -aes-256-cbc -d -in ~/vault.tar.gz.dat | tar xz; thunar ~/vault
Блокировка зашифрованного каталога:
tar cz vault/ | openssl enc -aes-256-cbc -out ~/vault.tar.gz.dat; rm -r ~/vault
rm -r
не удаляет данные; это просто отменяет связь. Вам нужно будет использовать что-то вроде srm
удаления данных с диска.
Я лично использую в aescrypt
основном.
aescrypt -e "File"
и расшифровать:
aescrypt -d "File"
Или есть Mcrypt:
mcrypt "File"
и расшифровать:
mcrypt -d "File"
А для каталога я предлагаю смонтировать каталог и зашифровать его. Затем после дешифрования просто распакуйте файл:
tar -cf "Dir.tar" Dir/
и распутать
tar -xf "Dir.tar"
Если высокий уровень безопасности не является большой проблемой (на странице руководства zip сказано, что алгоритм шифрования, используемый утилитами zipfile, слабее, чем PGP), то я предпочитаю zip и unzip. Это архивирует мои каталоги и шифрует одновременно. Я предпочитаю zip, потому что вы можете иметь своего рода инкрементный zip и шифрование вместо того, чтобы снова зашифровать и зашифровать все это. Особенно это полезно, когда размеры каталогов очень велики.
ZIP и шифрование
zip file.zip file
zip -r directory.zip directory
zip --encrypt file.zip.enc file # prompt for password
zip --encrypt -r directory.zip.enc directory # prompt for password
Распаковать и расшифровать
unzip directory.zip.enc #Beware if any directory is present with the same name as the zipped file, then it would be overwritten. Hence I normally send the contents to another directory.
unzip directory.zip.enc -d directory-new # prompts for password
Возможно, это не популярно, но я работаю над проектом по шифрованию / дешифрованию чего-либо с минимальным взаимодействием с пользователем с помощью нескольких скриптов Bash. Вот ссылка на пост Hak5, который объясняет настройку для тестирования.
Разрезание логики исходного кода, хотя вот что происходит для каждого типа данных, которые могут быть обработаны вышеуказанным связанным проектом
_gnupg_encrypt_opts="--always-trust --armor --batch --encrypt --recipient user@host.domain"
_bulk_output_dir="some_path"
_arbitrary_parsed_output="some_file.gpg"
## If file make encrypted time stamped file with similar name
_path_to_file="${_mapped_input}"
_path_to_output="${_bulk_output_dir}/$(date -u +%s)_${_path_to_file##*/}.gpg"
cat "${_path_to_file}" | gpg ${gpg _gnupg_encrypt_opts} > "${_path_to_output}"
## else if directory make compressed encrypted time stamped output file
_path_to_dir="${_mapped_input}"
_path_to_output="${_bulk_output_dir}/$(date -u +%s)_dir.tgz.gpg
tar -cz - "${_path_to_dir}" | gpg ${gpg _gnupg_encrypt_opts} > "${_path_to_output}"
## else if something else append encrypted output to file
_path_to_output="${_arbitrary_parsed_output}"
cat <<<"${_mapped_input}" | gpg ${gpg _gnupg_encrypt_opts} >> "${_path_to_output}"
${_mapped_input}
Переменная устанавливается путем считывания mkfifo
имени файла трубы и установки ничего читать в массив с mapfile -t _lines < "${_file_to_map}"
которой позже расширен и сохраняется в ${_mapped_input}
... немного запутанным , но это позволяет экспериментальные возможности действовать на отдельных линиях. В результате вы получите каталог для хранения зашифрованных файлов или сжатых каталогов и файл с различными пакетами зашифрованных данных.
Расшифровка файлов или сжатых каталогов достаточно проста на устройстве с закрытым ключом, связанным с открытым ключом, используемым для шифрования. Но дешифрование нескольких зашифрованных пакетов данных было немного сложнее, поэтому Paranoid_Pipes_Scenario_One.sh
в вышеприведенном проекте был написан скрипт, предназначенный для всего этого с минимальным взаимодействием с пользователем. Ниже приведена упрощенная версия исходного кода вспомогательных сценариев для обычных зашифрованных файлов и каталогов.
_gnupg_decrypt_opts="--quiet --no-tty --always-trust --passphrase-fd 9 --decrypt"
_decryption_output_dir="some_directory"
# if file
exec 9<"${_pass[@]}"
_path_to_file="${_mapped_input}"
_output_name="${_path_to_file##*/}"
_output_name="${_output_name%.gpg*}"
cat "${_path_to_file}" | gpg ${_gnupg_decrypt_opts} > "${_decryption_output_dir}/${_output_name}"
# else if compressed file
_path_to_file="${_mapped_input}"
_output_name="${_path_to_file##*/}"
_output_name="${_output_name%.tgz.gpg*}"
mkdir -p "${_decryption_output_dir}/${_output_name}"
_old_pwd="${PWD}"
cd "${_decryption_output_dir}/${_output_name}"
cat "${_path_to_file}" | gpg ${_gnupg_decrypt_opts} | tar -xzf -
cd "${_old_pwd}"
# else if non-compressed directory
_path_to_file="${_mapped_input}"
_output_name="${_path_to_file##*/}"
_output_name="${_output_name%.tar.gpg*}"
mkdir -p "${_decryption_output_dir}/${_output_name}"
_old_pwd="${PWD}"
cd "${_decryption_output_dir}/${_output_name}"
cat "${_path_to_file}" | gpg ${_gnupg_decrypt_opts} | tar -xf -
cd "${_old_pwd}"
Если вы хотите увидеть, какие другие функции работают и протестированы публично проверяемым способом, то посмотрите журналы сборки Travis-CI (особенно ближе к концу журналов), и вы обнаружите, что есть некоторые другие интересные вещи, над которыми работают для шифрования и дешифрования практически любых данных.
Он сам создает ключи One-Time Pad
java -cp FinalCrypt.jar rdj/CLUI --encrypt --password-prompt -k My-Key-Directory/ -t My-Test-Directory/
Пароль:
Всего зашифровано 4 файла 249,7 МБ
🔒 "/home/ron/My-Test-Directory/Video/Eerebegraafplaats.mp4.bit" 🗝 ✔ 🖆 ✔ 🔒✔ ℄✔ 🗑✔ SHA-256: "C1E3F3A3545FEA026F3FB344F3D0798B54820B7F9AD9AAC4BE9FD1E955F947DA" -> "D53FCEADDF542AC3655B547778911F786C2C2BDD327E0618A9E7F77B57792DEA" 58,4% 🔒 «/ главная / рон / My-Test-каталог / Видео / замок-waxjo-sweden.mp4.bit "🗝 ✔ 🖆 ✔ 🔒✔ ℄✔ 🗑✔ SHA-256: "8AEFC9744143451F32B82BBAC6A4291BC76C747A6DA1EA024702AA51A966F810" -> "323618B7ED12A1F92D8FFB306CEEC6DFFED6862B7BF3922902E8AED29DF57ECE" 91,2% 🔒" /home/ron/My-Test-Directory/Brother_HL-2170W-usaeng_quick-setup.pdf.bit»🗝 ✔ 🖆 ✔ 🔒✔ ℄✔ 🗑✔ SHA-256: "0858D2D5A8CF118D40B517CD4A1F8D31D9F5A21221F75BD764B5E363FC1431FE" -> "266CE42027F891DECF109D7A9DD69E8B42C0E43D35E952BEB89F7C7EA2DBE92C" 95,7% 🔒 "/ Главная / рон / My-Test-каталог / Brother dsmobile 700d_uke_usr.pdf.bit»🗝 ✔ 🖆 ✔ 🔒✔ ℄✔ 🗑✔ SHA-256: "8D718D2F29EF05BEB347D6920B3BFF5269685421B428E8D3ADFF569F67A716E0" -> "88A98D893B6D1E540039D3E9BC0B0C19B46A10A209967F3235D5DEEBF073EC1E" 100,0%
Закончено шифрование [4/4] файлов полностью [249,7 МБ / 249,7 МБ] за 7,3 секунды (в среднем: 34,2 МБ / с)
java -cp FinalCrypt.jar rdj/CLUI --decrypt --password-prompt -k My-Key-Directory/ -t My-Test-Directory/
Пароль:
Начал расшифровывать 4 файла всего 124,9 МиБ
🔓 "/home/ron/My-Test-Directory/Video/castle-waxjo-sweden.mp4" 🖃 ✔ 🔓✔ ℄✔ 🗑✔ SHA-256: "323618B7ED12A1F92D8FFB306CEEC6DFFED6862B7BF3922902E8AED29DF57ECE" -> "8AEFC9744143451F32B82BBAC6A4291BC76C747A6DA1EA024702AA51A966F810" 32,8% 🔓 «/ главная / рон / My-Test-Каталог / Видео / Eerebegraafplaats.mp4" 🖃 ✔ 🔓✔ ℄✔ 🗑✔ SHA-256: "D53FCEADDF542AC3655B547778911F786C2C2BDD327E0618A9E7F77B57792DEA" -> "C1E3F3A3545FEA026F3FB344F3D0798B54820B7F9AD9AAC4BE9FD1E955F947DA" 91,2% 🔓 «/ главная / рон / My-Test -Directory / Brother dsmobile 700d_uke_usr.pdf "🖃 ✔ 🔓✔ ℄✔ 🗑✔ SHA-256:" 88A98D893B6D1E540039D3E9BC0B0C19B46A10A209967F3235D5DEEBF073EC1E "->" 8D718D20F5F0F5F6F5F6F5D6B5D5D5B5D5BD5F5D6B5D6B5D5B5D5B6D5B5D5B5D5B5D5B5D5B5D5B5D5B5D5B5D5B5D5D5B5D5B5D5D5D5D6D6D6D6D6D6D6D6D6D6DBDB/home/ron/My-Test-Directory/Brother_HL-2170W-usaeng_quick-setup.pdf»🖃 ✔ 🔓✔ ℄✔ 🗑✔ SHA-256: "266CE42027F891DECF109D7A9DD69E8B42C0E43D35E952BEB89F7C7EA2DBE92C" -> "0858D2D5A8CF118D40B517CD4A1F8D31D9F5A21221F75BD764B5E363FC1431FE" 100,0%
Закончено дешифрование [4/4] файлов полностью [124,9 МБ / 124,9 МБ] за 3,4 секунды (в среднем: 36,3 МБ / с)
Он также имеет графический интерфейс
Просто пытаюсь помочь сообществу ...