Command-Line
如何使用文件名加密壓縮目錄?
使用命令行,我知道我可以使用以下命令加密目錄:
zip -er Directory.zip /path/to/directory
但是,這不會加密文件名本身。如果有人跑:
unzip Directory.zip
並且反复輸入錯誤的密碼,解壓縮命令將遍歷所有包含的文件名,直到輸入正確的密碼。樣本輸出:
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 文件中,只有文件內容被加密。文件元數據(包括文件名)未加密。這是文件格式的限制:每個條目都單獨壓縮,如果加密,則單獨加密。
您可以改用7-zip。它支持元數據加密(
-mhe=on
使用 Linux 命令行實現)。7z a -p -mhe=on Directory.7z /path/to/directory
所有主要作業系統和大多數次要作業系統都有 7zip 實現,但這可能需要安裝額外的軟體(IIRC Windows 現在可以解壓縮開箱即用的加密 zip 文件)。如果需要 7z 進行解密是一個問題,您只能依靠 zip,首先使用它將目錄打包到單個文件中,然後加密該文件。如果這樣做,請關閉單個文件的壓縮並指示外部 zip 壓縮 zip 文件,您將獲得更好的整體壓縮率。
zip -0 -r Directory.zip /path/to/directory zip -e -n : encrypted.zip Directory.zip