Cryptsetup
讓 Cryptsetup Benchmark –cipher 遍歷所有密碼列表
我正在嘗試
cryptsetup benchmark --cipher
在/proc/crypto
.
/proc/crypto
我通過執行以下操作獲得了列表:
cd ./Documents/; cat /proc/crypto | grep "name" | cut -c 16- | tee ciphers.txt
現在,我正在嘗試找到一種方法將每個密碼一個一個地傳遞到
cryptsetup
. 我的第一次嘗試很簡單cat ciphers.txt | cryptsetup benchmark --cipher
,但現在我想我可能需要將我創建的列表轉換為 .CSV 文件並通過for
循環傳遞它。有沒有辦法使用
ciphers.txt
我創建的列表,而不需要太多的努力,傳遞到cryptsetup
?
您的問題與 dm_crypt 無關。這是一個簡單的 shell 程式問題。
首先,您正在 虐待貓。而不是
cat /proc/crypto | grep "name"
,只需寫grep name /proc/crypto
(不需要引號)。您還可以將 grep 和 cut 組合成一個
sed
命令。不一定更容易閱讀:sed -n '/^name/s/.*: //p' /proc/crypto
但需要一個命令而不是兩個。-n
預設情況下阻止sed
列印行。程序查找以“name”開頭的行,並去除該行的第一部分,直到冒號後面的空白。p
確保然後列印。現在讓我們解決您的問題。我知道該
--cipher
選項需要一個密碼。這意味著您必須執行cryptsetup benchmark
多次,每個密碼一次。這需要一個循環,例如:for cipher in $(<cipher.txt) do cryptsetup benchmark --cipher "$cipher" done
引號是必需的,因為某些密碼名稱包含特殊字元,例如括號。
如果您不需要該文件
cipher.txt
,您可以一次性完成所有這些操作:for cipher in $(grep name /proc/crypto | cut -c 16-) do cryptsetup benchmark --cipher "$cipher" done