Dosya adları için şifrelemeli dizin nasıl sıkıştırılır?


17

Komut satırını kullanarak, bir dizini aşağıdaki komutla şifreleyebileceğimi biliyorum:

zip -er Directory.zip /path/to/directory

Ancak, bu dosya adlarını şifrelemez. Birisi koşarsa:

unzip Directory.zip

ve art arda yanlış bir parola girerse, unzip komutu, doğru parola girilene kadar içerilen tüm dosya adlarında dolaşır. Örnek çıktı:

unzip Directory.zip 
Archive:  Directory.zip
   creating: Directory/
[Directory.zip] Directory/sensitive-file-name-1 password: 
password incorrect--reenter: 
password incorrect--reenter: 
   skipping: Directory/sensitive-file-name-1  incorrect password
[Directory.zip] Directory/sensitive-file-name-2 password: 
password incorrect--reenter: 
password incorrect--reenter: 
   skipping: Directory/sensitive-file-name-2  incorrect password
[Directory.zip] Directory/sensitive-file-name-3 password: 
password incorrect--reenter: 
password incorrect--reenter: 
   skipping: Directory/sensitive-file-name-3  incorrect password

ve bunun gibi.

Komut satırını kullanarak, dosya adlarını kendileri şifrelerken veya gizlerken şifreleme içeren bir dizini sıkıştırmanın bir yolu var mı?

Teşekkür ederim.


Muhtemelen zip'in varsayılan şifrelemesini zayıf olduğu için kullanmak istemezsiniz, bu nedenle 7zipAES tabanlı şifreleme kullandığından kullanın .
Pierz

Zip'in varsayılan şifrelemesi nedir ve zip'in varsayılan şifrelemesinin güvenli olmadığını iddia etmek için kaynağınız nedir?
Leo Galleguillos

1
Çoğu zip aracı (daha iyi kripto kullanan bazı daha yeni zip araçları vardır) hala 1994'te ilk defa zayıf olduğu gösterilen PKZIP Stream şifresini kullanmaktadır: rd.springer.com/content/pdf/10.1007%2F3-540-60590-8_12 .pdf Wikipedia sayfası temel bir genel bakış sunar: en.wikipedia.org/wiki/Zip_(file_format)#Encryption
Pierz

Yanıtlar:


26

Bir zip dosyasında, yalnızca dosya içeriği şifrelenir. Dosya adları da dahil olmak üzere dosya meta verileri şifrelenmez. Bu, dosya biçiminin bir sınırlamasıdır: her giriş ayrı olarak sıkıştırılır ve şifrelenirse ayrı olarak şifrelenir.

Bunun yerine 7-zip kullanabilirsiniz . Meta veri şifrelemesini destekler ( -mhe=onLinux komut satırı uygulamasıyla).

7z a -p -mhe=on Directory.7z /path/to/directory

Tüm büyük işletim sistemleri ve çoğu küçük işletim sistemi için 7zip uygulaması vardır, ancak bu ek yazılım yüklemeyi gerektirebilir (IIRC Windows bu günlerde şifrelenmiş zip dosyalarını kutusundan çıkartabilir). Şifre çözme için 7z gerektiren bir sorun varsa, yalnızca dizini tek bir dosyada paketlemek ve daha sonra bu dosyayı şifrelemek için zip kullanarak güvenebilirsiniz. Bunu yaparsanız, tek tek dosyaların sıkıştırmasını kapatın ve dış zip'e zip dosyasını sıkıştırmasını söyleyin, genel olarak daha iyi bir sıkıştırma oranı elde edersiniz.

zip -0 -r Directory.zip /path/to/directory
zip -e -n : encrypted.zip Directory.zip

1
Şifrelemek için zip kullanmaktan kaçınmak muhtemelen en iyisidir - 2. satırda daha güvenli bir şekilde şifrelenmiş (AES) bir dosya oluşturmak için 7zip kullanabilirsiniz:7z a -p -tzip encrypted.zip Directory.zip
Pierz

2

Favori aracınızı kullanarak bir arşiv oluşturabilir ve daha sonra bcryptşifreleme / şifre çözme gerçekleştirmek için kullanabilirsiniz .

A) Şifrelenmiş bir dosya oluşturmak için:

tar -czf Directory.tgz /path/to/directory
bcrypt Directory.tgz

Bu size Blowfish şifreli bir dosya verecektir Directory.tgz

B) Bu işlemi tersine çevirmek için:

bcrypt Directory.tgz.bfe
tar -xf Directory.tgz

2
Yaklaşım iyidir, ancak şifreleme için başka bir araç kullanmalısınız - bcryptşifrelenmiş verilerdeki yapıyı ortaya çıkaran EBC kullanır. Ayrıntılar için Debian hatası # 700758'e bakın (Debian bcryptsadece sonuç olarak şifre çözmeyi destekler).
Stephen Kitt
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.