Cryptsetup

讓 Cryptsetup Benchmark –cipher 遍歷所有密碼列表

  • January 27, 2021

我正在嘗試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

引用自:https://unix.stackexchange.com/questions/631145