當(dāng)前位置: 首頁(yè)IT技術(shù)操作系統(tǒng) → linux下文件加密方法:用OpenSSL對(duì)消息和文件進(jìn)行加密

linux下文件加密方法:用OpenSSL對(duì)消息和文件進(jìn)行加密

更多

linux下文件如何加密呢?其實(shí)我們可以用到OpenSSL。OpenSSL是一款功能強(qiáng)大的加密工具包,下面就為大家介紹幾個(gè)簡(jiǎn)單易學(xué)的技巧,教你如何使用OpenSSL對(duì)消息和文件進(jìn)行加密。

對(duì)消息進(jìn)行加密和解密

首先,我們不妨對(duì)簡(jiǎn)單的消息進(jìn)行加密。下面這個(gè)命令將使用Base64編碼方法(Base64 Encoding),對(duì)"Welcome to LinuxCareer.com"(歡迎訪問(wèn)LinuxCaeer.com)這個(gè)消息進(jìn)行加密:

$ echo "Welcome to LinuxCareer.com" | openssl enc -base64

V2VsY29tZSB0byBMaW51eENhcmVlci5jb20K

上述這個(gè)命令的輸出是一個(gè)經(jīng)過(guò)加密的字符串,含有已經(jīng)過(guò)編碼的消息"Welcome to LinuxCareer.com"。想對(duì)經(jīng)過(guò)編碼的字符串進(jìn)行解密,恢復(fù)成原始消息,我們就要顛倒順序,加上-d選項(xiàng),進(jìn)行解密:

$ echo "V2VsY29tZSB0byBMaW51eENhcmVlci5jb20K" | openssl enc -base64 -d

Welcome to LinuxCareer.com

上述加密易于使用,不過(guò)它缺少密碼的一個(gè)重要特性,這個(gè)重要特性應(yīng)該可用于加密。比如說(shuō),試著用密碼"pass"對(duì)下列字符串進(jìn)行解密:

U2FsdGVkX181xscMhkpIA6J0qd76N/nSjjTc9NrDUC0CBSLpZQxQ2Db7ipd7kexj

為此,就要再次使用OpenSSL,這回帶-d選項(xiàng)和編碼方法aes-256-cbc:

echo "U2FsdGVkX181xscMhkpIA6J0qd76N/nSjjTc9NrDUC0CBSLpZQxQ2Db7ipd7kexj" | openssl

enc -aes-256-cbc -d -a

你恐怕已經(jīng)猜想到了,要像上面那樣用密碼創(chuàng)建經(jīng)過(guò)加密的消息,可以使用下面這個(gè)命令:

$ 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的輸出存儲(chǔ)到文件中,而不是存儲(chǔ)到STDOUT,只要使用STDOUT重定向">"。將經(jīng)過(guò)加密的輸出存儲(chǔ)到文件中時(shí),你還可以刪去-a選項(xiàng),因?yàn)椴辉傩枰敵鍪腔贏SCII文本的:

$ 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

想對(duì)openssl.dat文件進(jìn)行解密,恢復(fù)至原始消息,請(qǐng)使用:

$ openssl enc -aes-256-cbc -d -in openssl.dat

enter aes-256-cbc decryption password:

OpenSSL

對(duì)文件進(jìn)行加密和解密

想使用OpenSSL對(duì)文件進(jìn)行加密,其實(shí)就跟對(duì)消息進(jìn)行加密一樣簡(jiǎn)單。唯一的區(qū)別在于,我們不是使用echo命令,而是使用-in選項(xiàng),后面跟以我們想進(jìn)行加密的實(shí)際文件,并使用-out選項(xiàng),這會(huì)指令OpenSSL將經(jīng)過(guò)加密的文件存儲(chǔ)到某個(gè)名稱的文件中:

$ openssl enc -aes-256-cbc -in /etc/services -out services.dat

想對(duì)我們的服務(wù)文件進(jìn)行解密,恢復(fù)成原樣,請(qǐng)使用:

$ openssl enc -aes-256-cbc -d -in services.dat > services.txt

enter aes-256-cbc decryption password:

對(duì)目錄進(jìn)行加密和解密

萬(wàn)一你需要使用OpenSSL對(duì)整個(gè)目錄進(jìn)行加密,首先需要?jiǎng)?chuàng)建gzip打包文件(tarball),然后用上述方法對(duì)該打包文件進(jìn)行加密,也可以使用pipe,同時(shí)完成這兩項(xiàng)任務(wù):

# 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:

想對(duì)整個(gè)etc/目錄進(jìn)行解密,并提取到當(dāng)前的工作目錄,請(qǐng)使用:

# openssl enc -aes-256-cbc -d -in etc.tar.gz.dat | tar xz

enter aes-256-cbc decryption password:

上述方法對(duì)自動(dòng)備份加密目錄來(lái)說(shuō)相當(dāng)有用。

熱門評(píng)論
最新評(píng)論
發(fā)表評(píng)論 查看所有評(píng)論(0)
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過(guò)審核才能顯示)