在Linux上有許多用于加密文件的命令。當您想限制對文件內容的訪問時,可以使用文件權限,但是文件加密使限制訪問更加有效。這篇文章比較了一些用于加密文件的命令,并提供了一個簡單的腳本來試用它們。加密當然意味著您可以使用Linux命令和工具查看的文件已以無法使用和無法讀取的方式進行了更改,除非您取消加密過程。除非也使用壓縮,否則加密通常不會減小文件的大小。
實際上,加密過程可能會使某些文件變大。默認情況下,某些命令會壓縮,別人沒有。準備加密文件時要記住的事情包括您打算如何使用它(例如,安全備份,傳輸到另一個系統),如何管理密鑰以便可以在需要時解密文件以及是否保留原始文件在原始系統上或已“就地”加密-僅保留文件的加密版本。
注意:某些加密命令可以與公用/專用密鑰或加密時提供的密碼一起使用。這篇文章僅顯示使用密碼/密碼的命令。
gpg
gpg是Linux上用于加密文件的標準且最廣為人知的工具之一。它可以同時提供數字加密和簽名服務,盡管在本文中,我們僅介紹使用密碼對文件進行加密。與其他一些工具不同,gpg在加密文件內容之前會進行一些文件壓縮。
如果鍵入這樣的命令,則文件的內容將使用對稱密鑰進行加密。換句話說,相同的詞或短語將用于加密和解密文件。公鑰/私鑰可以與-e選項一起使用。
$ 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
請注意,結果文件的大小已大大減少,并且原始文件仍然完好無損。
該GPG命令只有一個文件,在工作一段時間。
壓縮
該壓縮命令通常用來壓縮文件,收集文件到檔案,便于儲存和運輸。但是,該命令也支持加密。您只需添加--encrypt選項。
$ zip-加密BigFile.zip BigFile
像gpg一樣,zip同時進行加密和壓縮,因此生成的文件大小應比原始文件小得多。
$ 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是用于創建檔案的工具,因此您可以通過在命令行上將多個文件添加到加密的捆綁軟件中來進行添加。
$ zip-加密loops.zip loop1 loop2
輸入密碼:
驗證密碼:
添加:loop1(放氣4%)
添加:loop2(放氣10%)
$ ls -l循環*
-rw-rw-r-- 1 shs shs 468 Jul 11 09:04 loops.zip
7z
的7Z命令的工作原理是拉鏈,但吹捧一個令人驚訝的令人印象深刻的壓縮比。像zip一樣,它可以在一個加密檔案中包含多個文件。要調用加密,請在-p選項后面的命令行中包含加密密碼。
$ 7z一個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
加密
據信,用于加密和解密文件的另一種工具ccrypt(基于Rijndael塊密碼)可提供非常強大的安全性,并且與所述其他命令一樣,可以在命令行上輕松運行。
請注意,ccrypt會刪除原始文件(將文件加密到位),不會顯著更改文件大小,也不會更改文件的日期/時間以反映執行加密的時間。
$ ccrypt -e BigFile
$ ls -l BigFile *
-rw-rw-r-- 1 shs shs 107740418 Jul 9 10:09 BigFile.cpt
該ccrypt命令可以用一個命令加密多個文件,但單獨進行加密。
加密
該mcrypt的密碼命令提示兩次,保留原始文件不變并更改文件權限的加密文件只提供讀寫訪問權限,文件所有者。它提供了很多有關加密算法的選擇,還提供了在加密之前壓縮文件的選項請參閱-z和-p選項。它可以處理多個文件,但分別對它們進行加密。
使用--list選項,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作為其默認加密算法。但是,您可以通過在壓縮文件上使用file命令來驗證使用了哪個:
$文件BigFile.bz2.nc
BigFile.bz2.nc:mcrypt 2.5加密數據,算法:rijndael-128,密鑰大小:32字節,模式:cbc,
嘗試加密命令的腳本
該腳本應稱為“ try”,使您可以輕松嘗試本文中介紹的工具。例如,如果鍵入“ try 7z target”(其中“ target”是要加密的文件的名稱),則腳本將運行命令以7z加密文件并顯示結果。如果您嘗試使用系統上未安裝的命令,它將說明尚未設置為使用該命令。
#!/ bin / bash
#驗證
如果[$#!= 2] 提供了2個參數;然后
回顯“ OOPS:命令和文件名必需”
出口
科幻
#確保請求的加密命令可用
其中$ 1> / dev / null
如果[$?!= 0]; 然后
回聲“ $ 1不可用”
1號出口
科幻
#確保文件存在
如果[!-f $ 2]; 然后
回聲“沒有這樣的文件:$ 2”
2號出口
科幻
案例$ 1
gpg)gpg -c $ 2
;;
ccrypt)ccrypt -e $ 2
;;
7z)echo -n“請提供密碼:”
讀取密碼
7z $ 2.7z $ 2 -p $ password
;;
zip)-加密$ 2.zip $ 2
;;
mcrypt)mcrypt -p $ 2
;;
*)echo“對不起,此腳本尚未設置為$ 1”
出口;;
埃薩克
#顯示文件
ls -l $ 2 *
在嘗試腳本沒有設置一個以上的目標文件同時加密,因為它使用$ 2(提供給腳本的第二個參數)指定目標文件并退出,如果超過一個文件作為參數提供。可以隨意修改或添加腳本以適合您的需求。
以上就是關于在Linux上加密文件的一些簡單選擇的全部內容介紹,想了解更多關于Linux的信息,請繼續關注中培偉業。