在市場上能找到許多用來保護檔案的檔案加密工具。我們已經介紹過其中一些例如 Cryptomater[1]、Cryptkeeper[2]、CryptGo[3]、Cryptr[4]、Tomb[5],以及 GnuPG[6] 等加密工具。今天我們將討論另一款叫做 “toplip” 的命令列檔案加密解密工具。它是一款使用一種叫做 AES256[7] 的強大加密方法的自由開源的加密工具。它同時也使用了 XTS-AES 設計以保護你的隱私資料。它還使用了 Scrypt[8],一種基於密碼的金鑰生成函式來保護你的密碼免於暴力破解。
優秀的特性
相比於其它檔案加密工具,toplip 自帶以下獨特且傑出的特性。
安裝 toplip
沒有什麼需要安裝的。toplip
是獨立的可執行二進位制檔案。你所要做的僅是從 產品官方頁面[9] 下載最新版的 toplip
並賦予它可執行許可權。為此你只要執行:
-
chmod +x toplip
使用
如果你不帶任何引數執行 toplip
,你將看到幫助頁面。
-
./toplip
請允許我給你展示一些例子。
為了達到指導目的,我建了兩個檔案 file1
和 file2
。我同時也有 toplip
可執行二進位制檔案。我把它們全都儲存進一個叫做 test
的目錄。
加密/解密單個檔案
現在讓我們加密 file1
。為此,執行:
-
./toplip file1 > file1.encrypted
這行命令將讓你輸入密碼。一旦你輸入完密碼,它就會加密 file1
的內容並將它們儲存進你當前工作目錄下一個叫做 file1.encrypted
的檔案。
上述命令列的示例輸出將會是這樣:
-
This is toplip v1.20 (C) 2015, 2016 2 Ton Digital. Author: Jeff Marrison A showcase piece for the HeavyThing library. Commercial support available Proudly made in Cooroy, Australia. More info: https://2ton.com.au/toplip file1 Passphrase #1: generating keys...Done
-
Encrypting...Done
為了驗證檔案是否的確經過加密,試著開啟它你會發現一些隨機的字元。
為瞭解密加密過的檔案,像以下這樣使用 -d
引數:
-
./toplip -d file1.encrypted
這行命令會解密提供的檔案併在終端視窗顯示內容。
為了儲存檔案而不是寫入到標準輸出,執行:
-
./toplip -d file1.encrypted > file1.decrypted
輸入正確的密碼解密檔案。file1.encrypted
的所有內容將會存入一個叫做 file1.decrypted
的檔案。
請不要用這種命名方法,我這樣用僅僅是為了便於理解。使用其它難以預測的名字。
加密/解密多個檔案
現在我們將使用兩個分別的密碼加密每個檔案。
-
./toplip -alt file1 file2 > file3.encrypted
你會被要求為每個檔案輸入一個密碼,使用不同的密碼。
上述命令列的示例輸出將會是這樣:
-
This is toplip v1.20 (C) 2015, 2016 2 Ton Digital. Author: Jeff Marrison A showcase piece for the HeavyThing library. Commercial support available Proudly made in Cooroy, Australia. More info: https://2ton.com.au/toplip
-
file2 Passphrase #1 : generating keys...Done
-
file1 Passphrase #1 : generating keys...Done
-
Encrypting...Done
上述命令所做的是加密兩個檔案的內容並將它們儲存進一個單獨的叫做 file3.encrypted
的檔案。在儲存中分別給予各自的密碼。比如說如果你提供 file1
的密碼,toplip
將複原 file1
。如果你提供 file2
的密碼,toplip
將複原 file2
。
每個 toplip
加密輸出都可能包含最多四個單獨的檔案,並且每個檔案都建有各自獨特的密碼。由於加密輸出放在一起的方式,一下判斷出是否存在多個檔案不是一件容易的事。預設情況下,甚至就算確實只有一個檔案是由 toplip
加密,隨機資料都會自動加上。如果指定了多於一個檔案,每個都有自己的密碼,那麼你可以有選擇性地獨立解碼每個檔案,以此來否認其它檔案存在的可能性。這能有效地使一個使用者在可控的暴露風險下開啟一個加密的捆綁檔案包。並且對於敵人來說,在計算上沒有一種低廉的辦法來確認額外的秘密資料存在。這叫做“合理的推諉”,是 toplip 著名的特性之一。
為了從 file3.encrypted
解碼 file1
,僅需輸入:
-
./toplip -d file3.encrypted > file1.encrypted
你將會被要求輸入 file1
的正確密碼。
為了從 file3.encrypted
解碼 file2
,輸入:
-
./toplip -d file3.encrypted > file2.encrypted
別忘了輸入 file2
的正確密碼。
使用多重密碼保護
這是我中意的另一個炫酷特性。在加密過程中我們可以為單個檔案提供多重密碼。這樣可以保護密碼免於暴力嘗試。
-
./toplip -c 2 file1 > file1.encrypted
這裡,-c 2
代表兩個不同的密碼。上述命令列的示例輸出將會是這樣:
-
This is toplip v1.20 (C) 2015, 2016 2 Ton Digital. Author: Jeff Marrison A showcase piece for the HeavyThing library. Commercial support available Proudly made in Cooroy, Australia. More info: https://2ton.com.au/toplip
-
file1 Passphrase #1: generating keys...Done
-
file1 Passphrase #2: generating keys...Done
-
Encrypting...Done
正如你在上述示例中所看到的,toplip
要求我輸入兩個密碼。請註意你必須提供兩個不同的密碼,而不是提供兩遍同一個密碼。
為瞭解碼這個檔案,這樣做:
-
$ ./toplip -c 2 -d file1.encrypted > file1.decrypted
-
This is toplip v1.20 (C) 2015, 2016 2 Ton Digital. Author: Jeff Marrison A showcase piece for the HeavyThing library. Commercial support available Proudly made in Cooroy, Australia. More info: https://2ton.com.au/toplip
-
file1.encrypted Passphrase #1: generating keys...Done
-
file1.encrypted Passphrase #2: generating keys...Done
-
Decrypting...Done
將檔案藏在圖片中
將一個檔案、訊息、圖片或影片藏在另一個檔案裡的方法叫做隱寫術。幸運的是 toplip
預設包含這個特性。
為了將檔案藏入圖片中,像如下所示的樣子使用 -m
引數。
-
$ ./toplip -m image.png file1 > image1.png
-
This is toplip v1.20 (C) 2015, 2016 2 Ton Digital. Author: Jeff Marrison A showcase piece for the HeavyThing library. Commercial support available Proudly made in Cooroy, Australia. More info: https://2ton.com.au/toplip
-
file1 Passphrase #1: generating keys...Done
-
Encrypting...Done
這行命令將 file1
的內容藏入一張叫做 image1.png
的圖片中。
要解碼,執行:
-
$ ./toplip -d image1.png > file1.decrypted This is toplip v1.20 (C) 2015, 2016 2 Ton Digital. Author: Jeff Marrison A showcase piece for the HeavyThing library. Commercial support available Proudly made in Cooroy, Australia. More info: https://2ton.com.au/toplip
-
image1.png Passphrase #1: generating keys...Done
-
Decrypting...Done
增加密碼複雜度
為了進一步使檔案變得難以破譯,我們可以像以下這樣增加密碼複雜度:
-
./toplip -c 5 -i 0x8000 -alt file1 -c 10 -i 10 file2 > file3.encrypted
上述命令將會要求你為 file1
輸入十條密碼,為 file2
輸入五條密碼,並將它們存入單個叫做 file3.encrypted
的檔案。如你所註意到的,我們在這個例子中又用了另一個 -i
引數。這是用來指定金鑰生成迴圈次數。這個選項改寫了 scrypt
函式初始和最終 PBKDF2 階段的預設迴圈次數 1。十六進位制和十進位制數值都是允許的。比如說 0x8000
、10
等。請註意這會大大增加計算次數。
為瞭解碼 file1
,使用:
-
./toplip -c 5 -i 0x8000 -d file3.encrypted > file1.decrypted
為瞭解碼 file2
,使用:
-
./toplip -c 10 -i 10 -d file3.encrypted > file2.decrypted
參考 toplip
官網[10]以瞭解更多關於其背後的技術資訊和使用的加密方式。
我個人對所有想要保護自己資料的人的建議是,別依賴單一的方法。總是使用多種工具/方法來加密檔案。不要在紙上寫下密碼也不要將密碼存入本地或雲。記住密碼,閱後即焚。如果你記不住,考慮使用任何了信賴的密碼管理器。
今天就到此為止了,更多好東西後續推出,請保持關註。
順祝時祺!
via: https://www.ostechnix.com/toplip-strong-file-encryption-decryption-cli-utility/
作者:SK[15] 譯者:tomjlw 校對:wxy