какая самая популярная команда для шифрования файла или каталога в терминале в Linux?
Как зашифровать файл или папку в Linux?
7 ответов
Я думаю, это будет gpg. Однако синтаксис для файлов и каталогов отличается.
безопасность
для файлов (выводит имя файла.gpg):
gpg -c filename
для dirs:
gpg-zip -c -o file.gpg dirname
дешифрования
для файлов (выводит имя файла.gpg):
gpg filename.gpg
для dirs:
gpg-zip -d file.gpg
Edit: исправлено, поскольку @Mk12 указал на ошибку сжатия/декомпрессии для шифрования/дешифрования.
- С openssl
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
- шифровать с помощью AES
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
Я лично использую aescrypt
в основном.
aescrypt -e "File"
и расшифровать:
aescrypt -d "File"
или есть mcrypt:
mcrypt "File"
и расшифровать:
mcrypt -d "File"
и для каталога, я предлагаю tar'ING dir, и шифрование, что. Затем после unencrypting, просто разархивируйте файл:
tar -cf "Dir.tar" Dir/
и распакуйте
tar -xf "Dir.tar"
Если самый высокий уровень безопасности не является большой проблемой ( man-страница 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 журналы сборки (особенно ближе к концу журналы) вы обнаружите, что есть и другие причудливые вещи, над которыми работают в отношении шифрования и дешифрования почти любых данных.
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]