1.簡介安全
OpenSSL是一款功能強大的加密工具包。咱們當中許多人已經在使用OpenSSL,用於建立RSA私匙或證書籤名請求(CSR)。不過,你可曾知道可使用OpenSSL來測試計算機速度?或者還能夠用它來對文件或消息進行加密?本文將介紹幾個簡單易學的技巧,教你如何使用OpenSSL對消息和文件進行加密。網絡
【相關推薦】:網絡安全工具百寶箱工具
2.對消息進行加密和解密測試
首先,咱們不妨對簡單的消息進行加密。下面這個命令將使用Base64編碼方法(Base64 Encoding),對"Welcome to LinuxCareer.com"(歡迎訪問LinuxCaeer.com)這個消息進行加密:編碼
$ echo "Welcome to LinuxCareer.com" | openssl enc -base64加密
V2VsY29tZSB0byBMaW51eENhcmVlci5jb20Khtm
上述這個命令的輸出是一個通過加密的字符串,含有已通過編碼的消息"Welcome to LinuxCareer.com"。想對通過編碼的字符串進行解密,恢復成原始消息,咱們就要顛倒順序,加上-d選項,進行解密:網絡安全
$ echo "V2VsY29tZSB0byBMaW51eENhcmVlci5jb20K" | openssl enc -base64 -dip
Welcome to LinuxCareer.comssl
上述加密易於使用,不過它缺乏密碼的一個重要特性,這個重要特性應該可用於加密。好比說,試着用密碼"pass"對下列字符串進行解密:
U2FsdGVkX181xscMhkpIA6J0qd76N/nSjjTc9NrDUC0CBSLpZQxQ2Db7ipd7kexj
爲此,就要再次使用OpenSSL,這回帶-d選項和編碼方法aes-256-cbc:
echo "U2FsdGVkX181xscMhkpIA6J0qd76N/nSjjTc9NrDUC0CBSLpZQxQ2Db7ipd7kexj" | openssl
enc -aes-256-cbc -d -a
你恐怕已經猜測到了,要像上面那樣用密碼建立通過加密的消息,可使用下面這個命令:
$ echo "OpenSSL" | openssl enc -aes-256-cbc -a enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
U2FsdGVkX185E3H2me2D+qmCfkEsXDTn8nCn/4sblr8=
若是你想把OpenSSL的輸出存儲到文件中,而不是存儲到STDOUT,只要使用STDOUT重定向">"。將通過加密的輸出存儲到文件中時,你還能夠刪去-a選項,由於再也不須要輸出是基於ASCII文本的:
$ echo "OpenSSL" | openssl enc -aes-256-cbc > openssl.dat
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
$ file openssl.dat
openssl.dat: data
想對openssl.dat文件進行解密,恢復至原始消息,請使用:
$ openssl enc -aes-256-cbc -d -in openssl.dat
enter aes-256-cbc decryption password:
OpenSSL
3.對文件進行加密和解密
想使用OpenSSL對文件進行加密,其實就跟對消息進行加密同樣簡單。惟一的區別在於,咱們不是使用echo命令,而是使用-in選項,後面跟以咱們想進行加密的實際文件,並使用-out選項,這會指令OpenSSL將通過加密的文件存儲到某個名稱的文件中:
$ openssl enc -aes-256-cbc -in /etc/services -out services.dat
想對咱們的服務文件進行解密,恢復成原樣,請使用:
$ openssl enc -aes-256-cbc -d -in services.dat > services.txt
enter aes-256-cbc decryption password:
4.對目錄進行加密和解密
萬一你須要使用OpenSSL對整個目錄進行加密,首先須要建立gzip打包文件(tarball),而後用上述方法對該打包文件進行加密,也可使用pipe,同時完成這兩項任務:
# tar cz /etc | openssl enc -aes-256-cbc -out etc.tar.gz.dat
tar: Removing leading `/' from member names
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
想對整個etc/目錄進行解密,並提取到當前的工做目錄,請使用:
# openssl enc -aes-256-cbc -d -in etc.tar.gz.dat | tar xz
enter aes-256-cbc decryption password:
上述方法對自動備份加密目錄來講至關有用。
5.小結
你們剛纔看到的只是OpenSSL加密方面的基本介紹。說到OpenSSL這款加密工具包,它其實沒有限制你能用它來作什麼,能夠說用途普遍。想看看如何使用不一樣的編碼方法,請參閱OpenSSL手冊頁:
$ man openssl