Lin*_*eak 4 encryption openssl pv
我需要加密并能够使用 解密文件openssl
,目前我只需使用以下方法即可:
openssl enc -aes-256-cbc -salt -in "$input_filename" -out "$output_filename"
Run Code Online (Sandbox Code Playgroud)
和解密:
openssl enc -aes-256-cbc -d -salt -in "$input_filename" -out "$output_filename"
Run Code Online (Sandbox Code Playgroud)
但是对于大文件,我希望看到进展。
我尝试了以下(解密)的不同变体:
pv "$input_filename" | openssl enc -aes-256-cbc -d -salt | pv > "$output_filename"
Run Code Online (Sandbox Code Playgroud)
但这并没有要求我输入密码。我不确定如何去做?
编辑1:
我发现这个tar
了openssl
:
虽然它可能非常有帮助,但我不太明白。
编辑2:
关于命名管道:
它几乎有效。除了闪烁的进度,我无法明显地向您展示,最终结果如下所示:
enter aes-256-cbc decryption password:
1.25GiB 0:00:16 [75.9MiB/s] [==============================================================================================================================================================================================>] 100%
1.25GiB 0:00:10 [ 126MiB/s] [ <=> ]
Run Code Online (Sandbox Code Playgroud)
你应该试试
openssl enc -aes-256-cbc -d -salt -in "$input_filename" | pv -W >> "$output_filename"
Run Code Online (Sandbox Code Playgroud)
从手册:
-W, --wait :
在显示任何进度信息或计算任何 ETA 之前,请等待第一个字节传输完毕。如果您要传入或传出的程序在启动之前需要额外的信息,例如将数据传输到 gpg(1) 或 mcrypt(1) 中,在处理数据之前需要密码短语,则很有用。
这正是你的情况。如果您需要查看进度条,原因在下面的评论中由周伟军明确说明,您可以将管道中的命令顺序颠倒:
pv -W "$input_filename" | openssl enc -aes-256-cbc -d -salt -out "$output_filename"
Run Code Online (Sandbox Code Playgroud)