當前位置: 首頁IT技術操作系統 → linux下文件加密方法:用OpenSSL對消息和文件進行加密

linux下文件加密方法:用OpenSSL對消息和文件進行加密

更多

linux下文件如何加密呢?其實我們可以用到OpenSSL。OpenSSL是一款功能強大的加密工具包,下面就為大家介紹幾個簡單易學的技巧,教你如何使用OpenSSL對消息和文件進行加密。

對消息進行加密和解密

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

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

V2VsY29tZSB0byBMaW51eENhcmVlci5jb20K

上述這個命令的輸出是一個經過加密的字符串,含有已經過編碼的消息"Welcome to LinuxCareer.com"。想對經過編碼的字符串進行解密,恢復成原始消息,我們就要顛倒順序,加上-d選項,進行解密:

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

Welcome to LinuxCareer.com

上述加密易于使用,不過它缺少密碼的一個重要特性,這個重要特性應該可用于加密。比如說,試著用密碼"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

對文件進行加密和解密

想使用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:

對目錄進行加密和解密

萬一你需要使用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:

上述方法對自動備份加密目錄來說相當有用。

熱門評論
最新評論
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字數: 0/500 (您的評論需要經過審核才能顯示)
时时彩人工计划51 海南省| 襄樊市| 晋城| 平谷区| 东丰县| 淳化县| 伽师县| 岢岚县| 柘城县| 北川| 额敏县| 浮山县| 三河市| 县级市| 巴彦县| 宁陵县| 莲花县| 延川县| 石首市| 监利县| 呼图壁县| 吉隆县| 容城县| 江安县| 平山县| 宿迁市| 百色市| 宜昌市| 龙泉市| 闸北区| 乌鲁木齐县| 岑溪市| 永济市| 渑池县| 同江市| 重庆市| 彰化县| 星座|