pv를 사용하여 openssl 암호화/암호 해독 진행 상황을 표시하는 방법은 무엇입니까?

pv를 사용하여 openssl 암호화/암호 해독 진행 상황을 표시하는 방법은 무엇입니까?

을 사용하여 파일을 암호화하고 해독할 수 있어야 합니다 openssl. 현재는 다음 명령을 사용하여 간단히 이 작업을 수행할 수 있습니다.

openssl enc -aes-256-cbc -salt -in "$input_filename" -out "$output_filename"

그리고 해독:

openssl enc -aes-256-cbc -d -salt -in "$input_filename" -out "$output_filename"

하지만 대용량 파일의 경우 진행 상황을 보고 싶습니다.

나는 다음과 같은 다양한 변형을 시도했습니다(암호화).

pv "$input_filename" | openssl enc -aes-256-cbc -d -salt | pv > "$output_filename"

하지만 이것은 나에게 비밀번호를 묻지 못합니다. 무엇을 해야할지 모르겠나요?

편집 1:

나는 tar이것을 찾았다 openssl:

https://stackoverflow.com/a/24704457/1997354

매우 도움이 될 수 있지만 잘 이해가 되지 않습니다.

편집 2:

명명된 파이프 정보:

이제 거의 사용할 준비가 되었습니다. 와는 별개로깜박거리다눈에 띄게 보여드릴 수는 없지만 진행 상황은 최종 결과는 다음과 같습니다.

enter aes-256-cbc decryption password:
1.25GiB 0:00:16 [75.9MiB/s] [==============================================================================================================================================================================================>] 100%            
1.25GiB 0:00:10 [ 126MiB/s] [                                             <=>                                                                                                                                                                ]

답변1

당신은 시도해야

openssl enc -aes-256-cbc -d -salt -in "$input_filename" | pv -W >> "$output_filename"

~에서수동:

-W, --잠깐:

진행 정보를 표시하거나 ETA를 계산하기 전에 첫 번째 바이트가 전송될 때까지 기다리십시오. 이는 데이터를 처리하기 전에 암호가 필요한 gpg(1) 또는 mcrypt(1)에 데이터를 파이프하는 것과 같이 시작하기 전에 추가 정보가 필요한 프로그램을 파이프하는 경우 유용합니다.

이것이 바로 당신의 상황입니다. 진행률 표시줄을 확인해야 하는 경우 그 이유는 다음과 같습니다.저우 웨이쥔아래 설명에 따라 파이프라인에서 명령 순서를 바꿀 수 있습니다.

pv -W "$input_filename" | openssl enc -aes-256-cbc -d -salt -out "$output_filename"

답변2

당신은해야합니다명명된 파이프여기.

$ mkfifo mypipe
$ pv < mypipe > "$output_filename"|(pv "$input_filename" | openssl enc -aes-256-cbc -d -salt -out mypipe)

이 두 명령의 출력은 pvtty 창 하단에 번갈아 표시됩니다. 그러나 이것이 정말로 필요한 것인지는 확실하지 않습니다. pvin 의 출력 만 필요한 경우 pv "$input_filename"위 명령을 적절하게 수정하세요.

편집하다

OP에서 더 많은 정보를 얻은 후 이제 확신이 들었습니다.

pv "$input_filename" | openssl enc -aes-256-cbc -d -salt -out "$output_filename"

OP의 문제를 해결하기에 충분합니다.진짜필요.

관련 정보