Cryptsetup Benchmark --cipher가 모든 암호 목록을 반복하도록 합니다.

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?

답변1

귀하의 문제는 dm_crypt와 관련이 없습니다. 이것은 간단한 쉘 프로그래밍 질문입니다.

먼저 커밋합니다. 고양이 학대. 대신에 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

관련 정보