RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: [教學] 如何開啟 OpenSSL 加密的 Tar 檔   字型大小:||| 
billylcm
驢有所悟
等級: 3等級: 3
台灣蚵仔麵線

今日心情

 . 積分: 17
 . 文章: 20
 . 收花: 95 支
 . 送花: 2 支
 . 比例: 0.02
 . 在線: 175 小時
 . 瀏覽: 3171 頁
 . 註冊: 6889
 . 失蹤: 179
#1 : 2010-5-8 04:47 PM     只看本作者 引言回覆

**本教學適用於 Linux/MacOS 和 Windows 作業系統**

各位大大好,這是我的第一篇教學文,本人中文不太好如有任何錯誤還請各位多多指點指點,小弟一定在最短的時間內修正.

Tar (或Tarball) 為 Unix Like 系統常用的打包程式,它可以將許多個檔案打包成一個檔案,由於本身並沒有壓所的機制,通常會搭配 gzip 或 bzip2 來減少使用空間,然而製作出的檔案附檔名通常為 tar.bz2 或 tar.gz,在 Windows 普遍天下的今天許多壓縮檔管理程式通常都已支持這類型的檔案.

但又由於 gzip 和 bzip2 並未提共加密機制,如要加密則必須再搭配可將檔案加密的程式,本文以 OpenSSL 的 des3 編碼為例,檔案以此加密的通常會附上 .des3 的附檔名.

1. 確認軟體
在開始前先確定本機裝有軟體 OpenSSL, Tarball, Gzip/Bzip2.

Linux/MacOS
目前 MacOS 及大部分的 Linux 預設都已經裝好相關套件,如沒有可以以管理員身分依據不同系統執行 apt-get install openssl tar (Debian-like 系統) 或 yum install openssl tar (RPM-base 系統) 來進行安裝.

Windows
必須下載 gnuwin32-libarchive, gnuwin32-libarchive-dep, gnuwin32-openssl
下載後開啟每個壓所檔內的 bin 資料夾,將附檔名為 .exe 和 .dll 複製到 C:\Windows\System32.
但由於原程式是以 UTF-8 編碼進行檔案命名而 Windows 是以 UTF-16 編碼,因此如檔案包含任何非 ASCII 字源 (如英文字母) 將無法正確顯是檔案名稱,在此建議安裝 Windows-Cygwin 系統 (請往下看) 解決此問題.

Windows-Cygwin
Cygwin 是一套融合 Windows 和 Unix-like 系統的系統,它允許使用者在 Windows 以 Unix-like 方式操作系統.
安裝 Cygwin 建議下載本人自行打包的 Cygwin 進行安裝,此檔案需的容量較小.下載後開啟壓縮檔並將 Cygwin 資料複製到 C:\ 並將 cygwin.bat 檔案複製桌面既可.然而也可於 http://www.cygwin.com 下載安裝程式, 執行後當詢問需安裝原件時選則 OpenSSL, Tar 既可.

2. 開啟 Terminal
接下來開啟 Terminal:

  • Windows 系統按 [窗戶] + R 後執行 CMD 開啟 Terminal.
  • Windows-Cygwin 可在桌面上找到 名為 cygwin.bat 或 cygwin 的捷徑, 按兩下執行既可.
  • MacOS 則在 Application 裡找.
  • Linux 因每個系統不一樣,但應該在選單裡找找就可以找到了.

開啟 Terminal 後以 cd 指令切換到檔案下載的資料夾. 下載檔案的附檔名通常為 .tar.gz.des3 或 tar.bz2.des3, 有些則還會多加 .partXX (XX為阿拉伯數字) 或 .xx (xx為英文字母),代表壓縮檔已被分割,需合成後才可解壓縮.

3. 合成檔案
如檔案未被分割則可以跳過此步驟,下面步驟將示範如何合成.

Linux/MacOS/Windows-Cygwin
在 Terminal 下執行:
cat [檔名].tar.gz.des3.part?? > [檔名].tar.gz.des3


Windows
在 Terminal 下執行:
copy /b [檔名].tar.gz.des3.part?? [檔名].tar.gz.des3


檔案合成後會產生一個 [檔名].tar.gz.des3 的檔案,此時可往下一步驟進行解壓縮動作.

4. 解壓縮
此步驟將示範如何解壓縮 [檔名].tar.gz.des3

Linux/MacOS/Windows-Cygwin
在 Terminal 下執行:
cat [檔名].tar.gz.des3 | openssl des3 -d -k [密碼] | tar zxf -


Windows
在 Terminal 下執行:
type [檔名].tar.gz.des3 | openssl des3 -d -k [密碼] | bsdtar zxf -


以上動作將把檔案解壓所到目前的資料夾,或可附上 -C [路徑] 既可將資料解壓所到指定的 [路徑].

註1: 當附上 -C [路徑] 時,如果目的路徑不存在將會發生錯誤.
註2: 如果附檔名為 .bz2 則需將指令 zxf 部分替換為 jxf.

5. 簡化
然而其實要將檔案合成再解壓所滿浪費時間和空間的,以下步驟將示範如何將合程和解壓縮動作一步驟完成

Linux/MacOS/Windows-Cygwin
在 Terminal 下執行:
cat [檔名].tar.gz.des3.part?? | openssl des3 -d -k [密碼] | tar zxf -


Windows
在 Terminal 下執行:
type [檔名].tar.gz.des3.part?? | openssl des3 -d -k [密碼] | bsdtar zxf -


就這樣,相信大家都有成功的解壓縮檔案,如沒有請檢查是否發生步驟 (4) 註解所提到的,並確認所下載的檔案是否完整. 如有任何問題或發現文章有錯誤歡迎回覆.

參考資料:
Encrypting a tar file using openssl

[billylcm 在  2010-5-11 03:05 AM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2024-4-19 10:15 AM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.021648 second(s), 7 queries , Qzip disabled