在Linux上有許多用于加密文件的命令。當(dāng)您想限制對(duì)文件內(nèi)容的訪問(wèn)時(shí),可以使用文件權(quán)限,但是文件加密使限制訪問(wèn)更加有效。這篇文章比較了一些用于加密文件的命令,并提供了一個(gè)簡(jiǎn)單的腳本來(lái)試用它們。加密當(dāng)然意味著您可以使用Linux命令和工具查看的文件已以無(wú)法使用和無(wú)法讀取的方式進(jìn)行了更改,除非您取消加密過(guò)程。除非也使用壓縮,否則加密通常不會(huì)減小文件的大小。
實(shí)際上,加密過(guò)程可能會(huì)使某些文件變大。默認(rèn)情況下,某些命令會(huì)壓縮,別人沒(méi)有。準(zhǔn)備加密文件時(shí)要記住的事情包括您打算如何使用它(例如,安全備份,傳輸?shù)搅硪粋€(gè)系統(tǒng)),如何管理密鑰以便可以在需要時(shí)解密文件以及是否保留原始文件在原始系統(tǒng)上或已“就地”加密-僅保留文件的加密版本。
注意:某些加密命令可以與公用/專用密鑰或加密時(shí)提供的密碼一起使用。這篇文章僅顯示使用密碼/密碼的命令。
gpg
gpg是Linux上用于加密文件的標(biāo)準(zhǔn)且最廣為人知的工具之一。它可以同時(shí)提供數(shù)字加密和簽名服務(wù),盡管在本文中,我們僅介紹使用密碼對(duì)文件進(jìn)行加密。與其他一些工具不同,gpg在加密文件內(nèi)容之前會(huì)進(jìn)行一些文件壓縮。
如果鍵入這樣的命令,則文件的內(nèi)容將使用對(duì)稱密鑰進(jìn)行加密。換句話說(shuō),相同的詞或短語(yǔ)將用于加密和解密文件。公鑰/私鑰可以與-e選項(xiàng)一起使用。
$ gpg -c BigFile
將提示您兩次輸入密碼,并且原始文件將保持不變,如以下示例所示:
$ ls -l BigFile *
-rw-rw-r-- 1 shs shs 107740386 Jul 10 13:21 BigFile
-rw-rw-r-- 1 shs shs 32359452 Jul 11 11:00 BigFile.gpg
請(qǐng)注意,結(jié)果文件的大小已大大減少,并且原始文件仍然完好無(wú)損。
該GPG命令只有一個(gè)文件,在工作一段時(shí)間。
壓縮
該壓縮命令通常用來(lái)壓縮文件,收集文件到檔案,便于儲(chǔ)存和運(yùn)輸。但是,該命令也支持加密。您只需添加--encrypt選項(xiàng)。
$ zip-加密BigFile.zip BigFile
像gpg一樣,zip同時(shí)進(jìn)行加密和壓縮,因此生成的文件大小應(yīng)比原始文件小得多。
$ ls -l BigFile *
-rw-rw-r-- 1 shs shs 107740386 Jul 10 13:21 BigFile
-rw-rw-r-- 1 shs shs 27587355 Jul 10 14:40 BigFile.zip
由于zip是用于創(chuàng)建檔案的工具,因此您可以通過(guò)在命令行上將多個(gè)文件添加到加密的捆綁軟件中來(lái)進(jìn)行添加。
$ zip-加密loops.zip loop1 loop2
輸入密碼:
驗(yàn)證密碼:
添加:loop1(放氣4%)
添加:loop2(放氣10%)
$ ls -l循環(huán)*
-rw-rw-r-- 1 shs shs 468 Jul 11 09:04 loops.zip
7z
的7Z命令的工作原理是拉鏈,但吹捧一個(gè)令人驚訝的令人印象深刻的壓縮比。像zip一樣,它可以在一個(gè)加密檔案中包含多個(gè)文件。要調(diào)用加密,請(qǐng)?jiān)?p選項(xiàng)后面的命令行中包含加密密碼。
$ 7z一個(gè)BigFile.7z BigFile -p hard2gue $$
$ ls -l BigFile *
-rw-rw-r-- 1 shs shs 107740386 Jul 10 13:21 BigFile
-rw-rw-r-- 1 shs shs 27674 Jul 11 12:37 BigFile.7z
加密
據(jù)信,用于加密和解密文件的另一種工具ccrypt(基于Rijndael塊密碼)可提供非常強(qiáng)大的安全性,并且與所述其他命令一樣,可以在命令行上輕松運(yùn)行。
請(qǐng)注意,ccrypt會(huì)刪除原始文件(將文件加密到位),不會(huì)顯著更改文件大小,也不會(huì)更改文件的日期/時(shí)間以反映執(zhí)行加密的時(shí)間。
$ ccrypt -e BigFile
$ ls -l BigFile *
-rw-rw-r-- 1 shs shs 107740418 Jul 9 10:09 BigFile.cpt
該ccrypt命令可以用一個(gè)命令加密多個(gè)文件,但單獨(dú)進(jìn)行加密。
加密
該mcrypt的密碼命令提示兩次,保留原始文件不變并更改文件權(quán)限的加密文件只提供讀寫訪問(wèn)權(quán)限,文件所有者。它提供了很多有關(guān)加密算法的選擇,還提供了在加密之前壓縮文件的選項(xiàng)請(qǐng)參閱-z和-p選項(xiàng)。它可以處理多個(gè)文件,但分別對(duì)它們進(jìn)行加密。
使用--list選項(xiàng),mycrypt將列出可用的加密算法。
$ mcrypt-列表
cast-128(16):cbc cfb ctr ecb ncfb nofb ofb
gost(32):cbc cfb ctr ecb ncfb nofb ofb
rijndael-128(32):cbc cfb ctr ecb ncfb nofb ofb
twofish(32):cbc cfb ctr ecb ncfb nofb ofb
arcfour(256):流
cast-256(32):cbc cfb ctr ecb ncfb nofb ofb
loki97(32):cbc cfb ctr ecb ncfb nofb ofb
rijndael-192(32):cbc cfb ctr ecb ncfb nofb ofb
saferplus(32):cbc cfb ctr ecb ncfb nofb ofb
喚醒(32):流
河豚兼容(56):cbc cfb ctr ecb ncfb nofb ofb
des(8):cbc cfb ctr ecb ncfb nofb ofb
rijndael-256(32):cbc cfb ctr ecb ncfb nofb ofb
蛇(32):cbc cfb ctr ecb ncfb nofb ofb
xtea(16):cbc cfb ctr ecb ncfb nofb ofb
河豚(56):cbc cfb ctr ecb ncfb nofb ofb
謎(13):流
rc2(128):cbc cfb ctr ecb ncfb nofb ofb
三元組(24):cbc cfb ctr ecb ncfb nofb ofb
所述的mcrypt命令似乎使用的Rijndael-128作為其默認(rèn)加密算法。但是,您可以通過(guò)在壓縮文件上使用file命令來(lái)驗(yàn)證使用了哪個(gè):
$文件BigFile.bz2.nc
BigFile.bz2.nc:mcrypt 2.5加密數(shù)據(jù),算法:rijndael-128,密鑰大小:32字節(jié),模式:cbc,
嘗試加密命令的腳本
該腳本應(yīng)稱為“ try”,使您可以輕松嘗試本文中介紹的工具。例如,如果鍵入“ try 7z target”(其中“ target”是要加密的文件的名稱),則腳本將運(yùn)行命令以7z加密文件并顯示結(jié)果。如果您嘗試使用系統(tǒng)上未安裝的命令,它將說(shuō)明尚未設(shè)置為使用該命令。
#!/ bin / bash
#驗(yàn)證
如果[$#!= 2] 提供了2個(gè)參數(shù);然后
回顯“ OOPS:命令和文件名必需”
出口
科幻
#確保請(qǐng)求的加密命令可用
其中$ 1> / dev / null
如果[$?!= 0]; 然后
回聲“ $ 1不可用”
1號(hào)出口
科幻
#確保文件存在
如果[!-f $ 2]; 然后
回聲“沒(méi)有這樣的文件:$ 2”
2號(hào)出口
科幻
案例$ 1
gpg)gpg -c $ 2
;;
ccrypt)ccrypt -e $ 2
;;
7z)echo -n“請(qǐng)?zhí)峁┟艽a:”
讀取密碼
7z $ 2.7z $ 2 -p $ password
;;
zip)-加密$ 2.zip $ 2
;;
mcrypt)mcrypt -p $ 2
;;
*)echo“對(duì)不起,此腳本尚未設(shè)置為$ 1”
出口;;
埃薩克
#顯示文件
ls -l $ 2 *
在嘗試腳本沒(méi)有設(shè)置一個(gè)以上的目標(biāo)文件同時(shí)加密,因?yàn)樗褂? 2(提供給腳本的第二個(gè)參數(shù))指定目標(biāo)文件并退出,如果超過(guò)一個(gè)文件作為參數(shù)提供。可以隨意修改或添加腳本以適合您的需求。
以上就是關(guān)于在Linux上加密文件的一些簡(jiǎn)單選擇的全部?jī)?nèi)容介紹,想了解更多關(guān)于Linux的信息,請(qǐng)繼續(xù)關(guān)注中培偉業(yè)。