Linux'ta bir dosya veya dizini nasıl şifreleyebilirim?


26

Linux'ta terminalde bir dosya veya dizini şifrelemek gibi şeyler yapmak için en popüler komut hangisidir?

Yanıtlar:


31

Ben gpg olacağını düşünüyorum. Dosya ve dizinlerin sözdizimi olsa da farklılık gösterir.

Şifreleme

Dosyalar için (dosyaadı.gpg çıktıları):

gpg -c filename

Dirs için:

gpg-zip -c -o file.gpg dirname

Şifre çözme

Dosyalar için (dosyaadı.gpg çıktıları):

gpg filename.gpg

Dirs için:

gpg-zip -d file.gpg

Düzenleme: @ Mk12 olarak düzeltilen şifreleme / şifre çözme için sıkıştırma / açma hatası olduğunu belirtti.


Bu "Şifreleme" ve "Şifre Çözme" olmamalı mı?
mk12

Hiç kimse bir dizini nasıl şifreleyeceğini söylemedi.
Chovy

1
@chovy Yukarıdaki değil diyor ki: dirs için: gpg-zip -c -o file.gpg dirname
celebdor 20:14

@celebdor bunu kaçırdı. Teşekkürler. düzenleme: Bu benim için çalışmıyor. Dosya şifresini çözdüğümde garip şifreli çıktılar alıyorum.
Chovy

@chovy: Bunu duyduğuma üzüldüm. Benim için çalıştı yukarıda gösterildiği gibi ben Darphane 17. altında gpg-zip (GnuPG) 1.4.16 kullanarak bu şifrelemek ve şifresini dizinleri teyit edebilir
Michael Scheper

10
  • openssl ile

openssl des3 -salt -in unencrypted-data.tar -out encrypted-data.tar.des3

azalmak:

openssl des3 -d -salt -in encrypted-data.tar.des3 -out unencrypted-data.tar

  • AES ile şifrelemek

aescrypt -e -p password file.jpg

azalmak:

aescrypt -d -p password file.jpg.aes


1
Büyük olasılıkla kullanıma hazır olan openssl ile nasıl yapacağınızı göstermek için +1.
DevSolar,

Aslında, ancak 3DES güvensiz olarak kabul edilir ve kullanılmamalıdır, AES (aescrypt) çok daha iyi bir seçenektir, bkz: stackoverflow.com/questions/1619212/…
jmng

2

GnuPG'yi dene .

Şifrelemek için: gpg -c filename

Şifresini çözmek için: gpg filename.gpg


2

Openssl ve tar kullanarak benim yöntemim

Şifreli Dizini Aç:

openssl enc -aes-256-cbc -d -in ~/vault.tar.gz.dat | tar xz; thunar ~/vault

Şifreli Dizini Kilitle:

tar cz vault/ | openssl enc -aes-256-cbc -out ~/vault.tar.gz.dat; rm -r ~/vault

1
rm -rveri silmez; Sadece onu kaldırır. srmVerileri diskten silmek gibi bir şey kullanmanız gerekir .
jbindel

2

Şahsen aescryptçoğunlukla kullanırım .

      aescrypt -e "File" 

ve şifresini çözmek:

      aescrypt -d "File"

Veya mcrypt var:

      mcrypt "File" 

ve şifresini çözmek:

      mcrypt -d "File"

Ve bir dizin için dir dir taring ve bunu şifrelemek öneririm. Sonra şifreyi çözdükten sonra, sadece dosyayı açın.

      tar -cf "Dir.tar" Dir/

ve untar

      tar -xf "Dir.tar"

1

En üst düzey güvenlik büyük bir sorun değilse (zip'in man sayfası, zipfile yardımcı programları tarafından kullanılan şifreleme algoritmasının PGP'den daha zayıf olduğunu söylüyorsa), zip ve zip'i açmayı tercih ederim. Dizinlerimi sıkıştırır ve aynı zamanda şifreler. Zip'i tercih ederim, çünkü her şeyi tekrar sıkıştırmak ve şifrelemek yerine, bir miktar artan zip'e sahip olabilir ve şifreleyebilirsiniz. Özellikle dizin boyutları çok büyük olduğunda kullanışlıdır.

ZIP ve şifrelemek

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

Sıkıştırma ve çözme

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

Popüler olmayabilir, ancak birkaç Bash komut dosyası kullanarak en az kullanıcı etkileşimi ile her şeyi şifrelemek / şifresini çözmek için bir proje üzerinde çalışıyorum. İşte test için kurulum açıklayan Hak5 yazı bir link .

Kaynak kod lojistiklerini kesmek, işte yukarıda belirtilen projede ele alınabilecek her veri tipi için olanları burada gerçekleştirir.

_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}Değişken bir okuyarak ayarlanır mkfifoadlandırılmış kanal dosyası ve birlikte bir diziye okunan şey ayarlayarak mapfile -t _lines < "${_file_to_map}"daha sonra genişletilmiş ve kaydedilir hangi ${_mapped_input}... biraz dolambaçlı ama deneysel özellikler bireysel hatlarda hareket etmeleri verir. Sonuçların sonuçları, şifreli dosyaları veya sıkıştırılmış dizinleri tutmak için bir dizine ve çeşitli şifreli veri paketlerine sahip bir dosyaya sahip olmanızdır.

Dosyaların veya sıkıştırılmış dizinlerin şifresini çözmek, şifreleme için kullanılan genel anahtarla ilgili özel bir anahtara sahip bir cihazda yeterince basittir. Ancak çoklu zırh şifreli veri paketlerinin şifresinin çözülmesi biraz daha zordu, bu yüzden Paranoid_Pipes_Scenario_One.shyukarıdaki projede hepsini minimum kullanıcı etkileşimi ile yapmak için yazılmış bir betik vardı . Aşağıda normal şifrelenmiş dosyalar ve dizinler için yardımcı kod kaynak kodunun basitleştirilmiş bir versiyonu bulunmaktadır.

_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}"

Başka hangi özelliklerin çalıştığını ve genel olarak doğrulanabilir bir şekilde test edildiğini görmek istiyorsanız, Travis-CI derleme günlüklerini inceleyin (özellikle günlüklerin sonuna yakın), ilişkide çalışılmakta olan diğer bazı süslü şeylerin olduğunu göreceksiniz neredeyse tüm verilerin şifrelemesi ve şifresinin çözülmesi.


0

FinalCrypt Kullan - Kırılmaz Tek Zamanlı Pad Açık Kaynak Dosya / Dizin Şifreleme (GUI ve CLI)

One-Time Pad anahtarlarını kendi kendine yaratır

java -cp FinalCrypt.jar rdj/CLUI --encrypt --password-prompt -k My-Key-Directory/ -t My-Test-Directory/

Parola:

Toplam 249,7 MiB dosya şifrelemeye başladı

🔒 "/home/ron/My-Test-Directory/Video/Eerebegraafplaats.mp4.bit" 🗝 ✔ 🖆 ✔ 🔒✔ ℄✔ 🗑✔ SHA-256: "C1E3F3A3545FEA026F3FB344F3D0798B54820B7F9AD9AAC4BE9FD1E955F947DA" -> "D53FCEADDF542AC3655B547778911F786C2C2BDD327E0618A9E7F77B57792DEA" 58,4% 🔒 "/ ana sayfa / ronFFAAAAAAAAAAAAAAAAAAA /home/ron/My-Test-Directory/Brother_HL-2170W-usaeng_quick-setup.pdf.bit" 🗝 ✔ 🖆 ✔ 🔒✔ ℄✔ 🗑✔ SHA-256: "0858D2D5A8CF118D40B517CD4A1F8D31D9F5A21221F75BD764B5E363FC1431FE" -> "266CE42027F891DECF109D7A9DD69E8B42C0E43D35E952BEB89F7C7EA2DBE92C" 95,7% 🔒 "/ ev / ron / ben "-Be ..." -BeBerBoemEkleBençebah.Avrupa "

[4/4] dosyaları tamamen [249,7 MiB / 249,7 MiB] 7,3 saniyede tamamladı (ortalama: 34,2 MiB / s)

java -cp FinalCrypt.jar rdj/CLUI --decrypt --password-prompt -k My-Key-Directory/ -t My-Test-Directory/

Parola:

4 dosya tamamen şifre çözmeye başladı 124,9 MiB

🔓 "/home/ron/My-Test-Directory/Video/castle-waxjo-sweden.mp4" 🖃 ✔ 🔓✔ ℄✔ 🗑✔ SHA-256: "323618B7ED12A1F92D8FFB306CEEC6DFFED6862B7BF3922902E8AED29DF57ECE" -> "8AEFC9744143451F32B82BBAC6A4291BC76C747A6DA1EA024702AA51A966F810" % 32,8 🔓 "/ ev / ron / My-test-Dizin / video / Eerebegraafplaats.mp4" 🖃 ✔ 🔓✔ ℄✔ 🗑✔ SHA-256: "D53FCEADDF542AC3655B547778911F786C2C2BDD327E0618A9E7F77B57792DEA" -> "C1E3F3A3545FEA026F3FB344F3D0798B54820B7F9AD9AAC4BE9FD1E955F947DA" 91,2% 🔓 "/ home / ron / My-Testi -Directory / Brother dsmobile 700d_uke_usr.pdf "🖃 ✔ 🔓✔ ℄✔ A SHA-256:" 88A98D893B6D1E540039D3E9BC0B0C19B46A10A209967F3235D5DEEBF073EC1E "-"/home/ron/My-Test-Directory/Brother_HL-2170W-usaeng_quick-setup.pdf" 🖃 ✔ 🔓✔ ℄✔ 🗑✔ SHA-256: "266CE42027F891DECF109D7A9DD69E8B42C0E43D35E952BEB89F7C7EA2DBE92C" -> "0858D2D5A8CF118D40B517CD4A1F8D31D9F5A21221F75BD764B5E363FC1431FE" % 100,0

[4/4] şifre çözme işlemi tamamlandı [4/4], 3,4 saniyede [124,9 MiB / 124,9 MiB] (ortalama: 36,3 MiB / s)

Ayrıca bir GUI var

Sadece topluma yardım etmeye çalışıyorum ...



FinalCrypt 5 Otomatik Anahtar ekledi ve otomatik olarak OTP Anahtarları yarattı, böylece Scott'un bahsettiği tartışma artık alakalı değil
Ron de Jong

Nasıl çalıştığını daha teknik ve daha az el sallayarak nasıl bir açıklamasını görmek istiyorum. Mesele şu ki, bir defalık pedlerin (1) veri iletimi için harika ve depolama için berbat olması  ve (2) rastgele olması gerektiğidir .  Eğer FinalCrypt’in OTP’leri gerçekten rastgele ise, o zaman güvenliği tehlikeye atacak şekilde saklanmaları gerekir . Yeniden üretilebiliyorlarsa, rasgele değil, sadece sözde rastgeledirler ve bu nedenle uygun OTP değildirler. … (Devamı)
Scott

(Devam)… Otomatik Anahtar Yönetimi sayfasındaki  OTP'lerin “çıkarılabilir bir harici (USB) sürücüde” saklandığını gösteriyor. “Tamam, işe yarayabilir. Ama, USB Eğer siz de sadece belki senin dosyanın şifresini (ve bir OTP, şifreler dosyası büyüklüğünde en az olması gerektiğini verilen) istediğiniz her zaman sürücü takmak için varsa çıkarılabilir sürücüde dosyalarınızı depolamak ve şifreleme ile rahatsız etmeyin. … (Devamı)
Scott

(Devam Ediyor )… Ayrıca, ana FinalCrypt sayfası “çoğu kripto yazılımının kırılmış AES kullandığını…” diyor, ancak AES'in “kırıldığını” iddia ediyor. İlgili: AES neden güvenli kabul ediliyor? ( Şifreleme Yığın Değişimi Üzerine  ).
Scott,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.