Як зашифрувати файл або каталог в Linux?


26

Яка найпопулярніша команда робити такі речі, як шифрування файлу чи каталогу в терміналі в Linux?

Відповіді:


31

Я думаю, це було б gpg. Синтаксис файлів і каталогів відрізняється.

Шифрування

Для файлів (виводить filename.gpg):

gpg -c filename

Для панів:

gpg-zip -c -o file.gpg dirname

Розшифрування

Для файлів (виводить filename.gpg):

gpg filename.gpg

Для панів:

gpg-zip -d file.gpg

Редагувати: виправлено як @ Mk12 вказував на помилку стиснення / декомпресії для шифрування / дешифрування.


Чи не повинні це бути "Шифрування" та "Розшифровка"?
mk12

Ніхто не сказав, як зашифрувати каталог.
чов

1
@chovy Не те, що над цим написано: Для dirs: gpg-zip -c -o file.gpg dirname
celebdor

@celebdor пропустив це. Спасибі. редагувати: це не працює для мене. Я отримую якийсь дивний зашифрований вихід, коли розшифровую файл.
chovy

@chovy: Вибачте, що це чую. Я можу підтвердити, що шифрування та розшифрування каталогів, як показано вище, працювали для мене, використовуючи gpg-zip (GnuPG) 1.4.16 під монетом 17.
Майкл Шепер

10
  • з 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


1
+1 - показує, як це зробити за допомогою opensl, який, швидше за все, доступний поза вікном.
DevSolar

У самому справі, але 3DES вважається небезпечним і не повинен використовуватися, AES (aescrypt) є набагато кращим варіантом, см: stackoverflow.com/questions/1619212 / ...
jmng

2

Спробуйте GnuPG .

Для шифрування: gpg -c filename

Для розшифрування: gpg filename.gpg


2

Це мій метод з використанням 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

1
rm -rне видаляє дані; це просто від’єднує його. Вам потрібно буде використовувати щось на зразок, srmщоб стерти дані з диска.
jbindel

2

Я особисто в aescryptосновному використовую .

      aescrypt -e "File" 

і розшифрувати:

      aescrypt -d "File"

Або є mcrypt:

      mcrypt "File" 

і розшифрувати:

      mcrypt -d "File"

А для довідника я пропоную скористатися режимом та зашифрувати це. Потім після розшифрування просто зніміть файл:

      tar -cf "Dir.tar" Dir/

і зняти

      tar -xf "Dir.tar"

1

Якщо найвищий рівень безпеки не є великою проблемою (головна сторінка zip говорить, що алгоритм шифрування, який використовується утилітами zipfile, слабший, ніж PGP), то я віддаю перевагу zip та unzip. Він замикає мої каталоги та шифрує одночасно. Я вважаю за краще поштовий індекс, тому що ви можете мати своєрідний додатковий поштовий індекс та шифрування замість того, щоб знову і зашифровувати все. Особливо це корисно, коли розміри каталогів дуже великі.

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

0

Може не користуватися популярністю, але я працюю над проектом, щоб шифрувати / розшифровувати що-небудь з мінімальною взаємодією з користувачем за допомогою кількох сценаріїв 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 (особливо в кінці журналів), ви знайдете, що в цьому відношенні є деякі інші модні речі. для шифрування та дешифрування майже будь-яких даних.


0

Використовувати FinalCrypt - Нерозбірливий одноразовий кодекс OpenSource File / Directory Encryption (GUI та CLI)

Він створює одноразові клавіші 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% 🔒 «/ home / ron / My-Test-Directory / Відео / замок-waxjo-Швеція.mp4.bit "🗝 ✔ 🖆 ✔ 🔒✔ ℄✔ A SHA-256:" 8AEFC9744143451F32B82BBAC6A4291BC76C747A6DA1EA024702AA51A966F810187E9387E0387E0305E0387E0107E0387E0387E7E0305E0305E0107E7E0105E0107E7E0105E0105E0107E0107E0105E0107E3F3203F3103F3103F3103F3109 " /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 MiB / 249,7 MiB] за 7,3 секунди (середнє: 34,2 MiB / s)

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 ">/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 МіБ / с)

Він також має графічний інтерфейс

Просто намагаюся допомогти громаді ...



FinalCrypt 5 додав автоматичний ключ і автоматично створює ключі OTP, тож дискусія, на яку посилається Скотт, більше не актуальна
Рон де Йонг

Я хотів би побачити опис того, як це працює, що є більш технічним і менш махає руками. Проблема полягає в тому, що одноразові колодки (1) чудово підходять для передачі даних, а вразливі для  зберігання та (2) повинні бути випадковими.  Якщо OTP FinalCrypt справді випадкові, то вони повинні зберігатися, що загрожує безпеці. Якщо вони можуть бути відроджені, то вони не випадкові, а лише псевдовипадкові, і тому вони не є належними OTP. … (Продовження)
Скотт

(Продовження)… Їх сторінка щодо  автоматичного керування ключами вказує на те, що OTP зберігаються «на знімному зовнішньому (USB) накопичувачі. Добре, що може спрацювати. Але якщо вам доведеться приєднувати USB-накопичувач щоразу, коли ви хочете розшифрувати файл (і зважаючи на те, що OTP повинен бути принаймні таким же великим, як і файл, який він шифрує), ви можете просто зберігати свої файли на знімному диску і не турбуватись із шифруванням. … (Продовження)
Скотт

(Продовження)… Також на головній сторінці FinalCrypt написано, що "більшість програм криптовалюти використовує зламаний AES ...", але твердження, що AES "зламаний", здається, сильно перебільшено. Пов’язано: Чому AES вважається безпечним? (на  обміні стека криптографії ).
Скотт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.