วิธี zip ไดเร็กทอรีด้วยการเข้ารหัสสำหรับชื่อไฟล์?


17

ใช้บรรทัดคำสั่งฉันรู้ว่าฉันสามารถเข้ารหัสไดเรกทอรีด้วยคำสั่งต่อไปนี้:

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

อย่างไรก็ตามสิ่งนี้ไม่ได้เข้ารหัสชื่อไฟล์ด้วยตนเอง หากมีคนวิ่ง:

unzip Directory.zip

และป้อนรหัสผ่านไม่ถูกต้องซ้ำ ๆ คำสั่ง unzip จะวนซ้ำตามชื่อไฟล์ที่มีอยู่ทั้งหมดจนกว่าจะป้อนรหัสผ่านที่ถูกต้อง ตัวอย่างผลลัพธ์:

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

และอื่น ๆ

การใช้บรรทัดคำสั่งมีวิธีการบีบอัดไดเรกทอรีด้วยการเข้ารหัสขณะเดียวกันก็ทำการเข้ารหัสหรือซ่อนชื่อไฟล์ด้วยหรือไม่

ขอขอบคุณ.


คุณอาจไม่ต้องการใช้การเข้ารหัสเริ่มต้นของ zip เนื่องจากอ่อนแอดังนั้นควรใช้7zipเนื่องจากใช้การเข้ารหัสแบบ AES
Pierz

การเข้ารหัสเริ่มต้นของ zip คืออะไรและแหล่งที่มาของคุณสำหรับการยืนยันว่าการเข้ารหัสเริ่มต้นของ zip ไม่ปลอดภัยคืออะไร
Leo Galleguillos

1
เครื่องมือ zip ส่วนใหญ่ (มีเครื่องมือ zip ที่ใหม่กว่าซึ่งใช้ crypto ที่ดีกว่า) ยังคงใช้รหัสเข้ารหัสของสตรีม PKZIP ซึ่งแสดงให้เห็นว่าอ่อนแอในปี 1994 เป็นครั้งแรก: rd.springer.com/content/pdf/10.1007%2F3-540-60590-8_12 .pdfหน้า Wikipedia ให้ภาพรวมพื้นฐาน: en.wikipedia.org/wiki/Zip_(file_format)#Encryption
Pierz

คำตอบ:


26

ในไฟล์ zip มีการเข้ารหัสเนื้อหาไฟล์เท่านั้น ข้อมูลเมตาของไฟล์รวมถึงชื่อไฟล์ไม่ได้เข้ารหัส นั่นเป็นข้อ จำกัด ของรูปแบบไฟล์: แต่ละรายการถูกบีบอัดแยกกันและถ้าเข้ารหัสเข้ารหัสแยกต่างหาก

คุณสามารถใช้7-zipแทน รองรับการเข้ารหัสข้อมูลเมตา ( -mhe=onด้วยการใช้งานบรรทัดคำสั่ง Linux)

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

มีการใช้งาน 7zip สำหรับระบบปฏิบัติการหลักและรุ่นรองส่วนใหญ่ แต่อาจต้องติดตั้งซอฟต์แวร์เพิ่มเติม (IIRC Windows สามารถคลายซิปไฟล์เข้ารหัสที่เข้ารหัสออกจากกล่องได้) หากต้องการการถอดรหัส 7z เป็นปัญหาคุณสามารถพึ่งพา zip ได้โดยการใช้มันก่อนเพื่อแพ็คไดเรกทอรีในไฟล์เดียวแล้วเข้ารหัสไฟล์นั้น หากคุณทำเช่นนั้นให้ปิดการบีบอัดไฟล์แต่ละไฟล์และสั่งให้ zip ด้านนอกทำการบีบอัดไฟล์ zip คุณจะได้อัตราส่วนการบีบอัดที่ดีกว่าโดยรวม

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

1
น่าจะดีที่สุดในการหลีกเลี่ยงการใช้ zip เพื่อเข้ารหัส - หนึ่งสามารถใช้ 7zip เพื่อสร้าง zipfile ที่เข้ารหัส (AES) ที่ปลอดภัยยิ่งขึ้นในบรรทัดที่ 2:7z a -p -tzip encrypted.zip Directory.zip
Pierz

2

คุณสามารถสร้างการเก็บถาวรโดยใช้เครื่องมือที่คุณชื่นชอบแล้วใช้bcryptเพื่อทำการเข้ารหัส / ถอดรหัส

A)ในการสร้างไฟล์ที่เข้ารหัส:

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

นี่จะให้ไฟล์ที่เข้ารหัสด้วย Blowfish Directory.tgz

B)เพื่อย้อนกลับกระบวนการนี้:

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

2
วิธีการนี้ดี แต่คุณควรใช้เครื่องมืออื่นสำหรับการเข้ารหัส - bcryptใช้ EBC ซึ่งเปิดเผยโครงสร้างในข้อมูลที่เข้ารหัส ดูDebian bug # 700758สำหรับรายละเอียด (Debian bcryptรองรับการถอดรหัสเท่านั้น)
Stephen Kitt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.