การเข้ารหัสและการบีบอัด


28

มีวิธีที่ดีกว่าในการบีบอัดแล้วเข้ารหัสไฟล์อื่น ๆ ที่tarตามมาด้วยopensslหรือgpg?


3
ขึ้นอยู่กับว่า คุณต้องการอะไรบ้าง? คุณคิดว่า "ดีที่สุด" เป็นอย่างไร คุณมีเครื่องมืออะไรบ้าง คุณเคยพิจารณาตัวเลือกอื่น ๆ แล้วซึ่งอาจเป็นประโยชน์ในการพูดถึง?
Greg Hewgill

ยังไม่ได้พิจารณาคนอื่น เพียงแค่ต้องมีการเข้ารหัสพื้นฐานที่บางคนไม่สามารถอ่านเนื้อหาของไฟล์และควรรักษาอัตราส่วนการบีบอัดที่ดี
user75027

1
โดยทั่วไปแล้วคำตอบจะไม่ใช่ หนึ่งในปรัชญาหลักของยูนิกซ์คือ "ทำสิ่งหนึ่งสิ่งใดและทำได้ดี" tar -zเป็นข้อยกเว้นเล็กน้อยเนื่องจากเป็นวิธีปฏิบัติทั่วไป
แพทริค

1
tarรุ่นที่ใหม่กว่ารองรับการบีบอัด xz (แฟล็ก-J) ซึ่งโดยปกติอัตราส่วนการบีบอัดจะดีกว่าการบีบอัด gzip ( -z) หรือ bzip2 ( -j) แบบดั้งเดิมมากขึ้น
jofel

ฉันสังเกตเห็นว่าxzยอดเยี่ยม ฉันจำได้ว่าการดาวน์โหลดเคอร์เนลและมันถูกซิปขนาดประมาณ 1/7 ของขนาดดั้งเดิม ฉันเดาว่าฉันจะtar cvJf out.tar.xz file1 [file2...]ใช้ gpg หรือ openssl เพื่อเข้ารหัสมัน ฉันยังสังเกตเห็นว่า xz เร็วมาก การบีบอัดดีขึ้นกว่า bz2 และยังเร็วได้อย่างไร
user75027

คำตอบ:


24

tarเป็นเครื่องมือปกติในการรวมไฟล์ ธรรมดาtarไม่บีบอัด มีเครื่องมือแยกต่างหากเช่นgzip , bzip2และxz (เพื่อเพิ่มอัตราส่วนการบีบอัดในไฟล์ทั่วไป) ที่บีบอัดหนึ่งไฟล์ tarการติดตั้งจำนวนมากรวมถึง GNU tar (การใช้งานปกติบน Linux) สามารถบีบอัดโดยอัตโนมัติด้วยตัวเลือก ( -zสำหรับ gzip, -jสำหรับ bzip2, -Jสำหรับ xz):

tar -cJf myarchive.tar.xz file1 file2 file3

การเข้ารหัสไฟล์ที่ใช้จีพีจี สร้างรหัสและเชื่อมโยงกับที่อยู่อีเมลของคุณ (โดยปกติตัวระบุคีย์ GPG / PGP จะมีที่อยู่อีเมลแม้ว่าจะไม่จำเป็นก็ตาม) เข้ารหัสไฟล์ของคุณระบุอีเมลของคุณเป็นผู้รับ ในการถอดรหัสไฟล์คุณจะต้องป้อนวลีรหัสผ่านเพื่อปลดล็อคกุญแจส่วนตัวของคุณ

GPG ยังให้คุณเข้ารหัสไฟล์ด้วยรหัสผ่าน สิ่งนี้มีความปลอดภัยน้อยกว่าและมีความยืดหยุ่นน้อยกว่า มีความยืดหยุ่นน้อยกว่าเพราะคุณต้องระบุรหัสผ่านเมื่อทำการเข้ารหัส (เช่นคุณไม่สามารถทำการสำรองข้อมูลแบบไม่ต้องใส่ข้อมูล) มันมีความปลอดภัยน้อยกว่าเพราะความปลอดภัยเพียงอย่างเดียวคือรหัสผ่านในขณะที่การเข้ารหัสโดยใช้คีย์จะแยกความปลอดภัยระหว่างรหัสผ่านและคีย์

อย่าใช้opensslเครื่องมือบรรทัดคำสั่ง มันเป็นตู้โชว์สำหรับห้องสมุด OpenSSL ซึ่งไม่ได้ออกแบบมาสำหรับการใช้งานจริง แม้ว่าคุณสามารถทำสิ่งต่าง ๆ ได้ (โดยเฉพาะอย่างยิ่งมันมีพื้นฐานทั้งหมดที่จำเป็นสำหรับผู้มีสิทธิ์ออกใบรับรองพื้นฐาน) แต่ก็ยากที่จะใช้อย่างถูกต้องและไม่มีสิ่งที่คุณต้องทำในสิ่งที่ถูกต้อง ที่ GPG มอบจักรยานให้คุณ OpenSSL ให้แท่งโลหะที่มีขนาดต่างๆและห้องยางสองสามอัน (ไม่รวมสกรูและปั๊ม) ใช้ GPG


ฉันเข้าใจ tar เป็นตัวรวมและวิธีการบีบอัด อย่างไรก็ตามปุ่ม gpg ยังใหม่สำหรับฉัน ฉันไม่เข้าใจวิธีการใช้งานอย่างแน่นอนแม้ว่าฉันจะมีกุญแจ ฉันคิด. ฉันคิดว่าฉันยังมีกุญแจ ssh
user75027

นี่คือสิ่งที่ฉันกำลังมองหาที่จะบีบอัดและเข้ารหัสด้วยคำสั่งเดียว (ใช้tarและgpgในไพพ์)
CGFoX

12

คุณสามารถใช้ 7zip:

7z a -p -mhe=on stuff.7z MyStuff
   ^  ^     ^      ^        ^
   |  |     |      |        `--- Files/directories to compress & encrypt.
   |  |     |      `--- Output filename
   |  |      `--- Encrypt filenames
   |  `---- Use a password
   `---- Add files to archive

มันจะพร้อมท์ให้คุณใส่รหัสผ่าน เห็นได้ชัดว่ามันใช้ AES-256 สำหรับการเข้ารหัสและSHA-256 ของรหัสผ่านและตัวนับซ้ำ 512K ครั้งสำหรับการสืบทอดคีย์

แก้ไข : นี่ไม่ได้เข้ารหัสชื่อไฟล์ดังนั้นคุณอาจต้องการtarทุกสิ่งก่อน

แก้ไข 2 : เพิ่ม-mhe=onแล้ว


5
หากคุณใช้7zaคุณสามารถเข้ารหัสชื่อไฟล์ด้วย-mhe=onตัวเลือก
SilverlightFox

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.