1. 程式人生 > >如何運用OpenSSL 對檔案進行加密和解密

如何運用OpenSSL 對檔案進行加密和解密

我們在平時的 Linux 運維管理的時候,經常會進行各種資料備份任務。將資料匯出然後打包。通常在安全性要求比較高的環境下,我們可以藉助 OpenSSL 工具對打包後的資料進行加密,這樣能進一步的保障資料的安全性。
OpenSSL 使用密碼方式加密或解密檔案

1. 使用 openssl 加密一個檔案 (data.zip 為原始檔案,back.zip 為加密之後的檔案)

# openssl enc -e -aes256 -in data.zip -out back.zip

解釋: enc 表示對檔案進行對稱加密或解密, -e 表示對一個檔案進行加密操作,-aes256 表示使用 aes256 演算法進行加密,-in 表示需要被加密的檔案,-out 表示加密之後生成的新檔案。加密過程中會要求輸入一個加密密碼,重複輸入兩次即可完成對檔案的加密

2. 使用 openssl 解密一個檔案 (back.zip 為加密的檔案,data.zip 為解密之後的檔案)

# openssl enc -d -aes256 -in back.zip -out data.zip

解釋: enc 表示對檔案進行對稱加密或解密, -d 表示對檔案進行解密操作,-aes256 表示使用 aes256 演算法進行解密,-in 表示需要被解密的檔案,-out 表示解密之後生成的新檔案,解密一個檔案的時候會要求輸入加密檔案時設定的密碼才能進行解密。

OpenSSL 使用金鑰方式加密或解密檔案

1. 首先需要使用 openssl 生成一個 2048 位的金鑰 rsa.key 檔案 (rsa.key 金鑰檔案中包含了私鑰和公鑰)

# openssl genrsa -out rsa.key 2048

2. 然後從 rsa.key 金鑰檔案中提取出公鑰 pub.key

# openssl rsa -in rsa.key -pubout -out pub.key

3. 使用 pub.key 公鑰加密一個檔案 (data.zip 為原始檔案,back.zip 為加密之後的檔案)

# openssl rsautl -encrypt -inkey pub.key -pubin -in data.zip -out back.zip

4. 使用 rsa.key 私鑰解密一個檔案 (back.zip 為加密的檔案,data.zip 為解密之後的檔案)

# openssl rsautl -decrypt -inkey rsa.key -in back.zip -out data.zip

最後我們使用 OpenSSL 工具,對所有備份的資料檔案進行加密儲存,就能保證業務系統資料進行保護,防止洩漏。我們也可以使用其他的加密工具比如 GPG,VeraCrypt,trueCrypt 這些工具來對資料進行加密,但相比而言,使用 OpenSSL 更加方便,因為幾乎每種 Linux 發行版都預裝了 OpenSSL 軟體包。