Linux 使用 bash shell 脚本加密文件

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/8641109/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-06 03:49:42  来源:igfitidea点击:

Encrypt a file using bash shell script

linuxbashshellencryptionopenssl

提问by Pritom

I want to encrypt a file using openssl. I can do it by using

我想使用 openssl 加密文件。我可以通过使用来做到

openssl des3 -salt -in /pritom/uaeyha_com.sql -out /pritom/a.ss 

When I run this command, it gets password from me two times. I want to set password with the script and I used

当我运行此命令时,它两次从我这里获取密码。我想用脚本设置密码,我用过

openssl des3 -salt -in /pritom/uaeyha_com.sql -out /pritom/a.ss -pass pritom 

but it gives me the following error:

但它给了我以下错误:

Invalid password argument "pritom"
Error getting password 

What can I do now?

我现在能做什么?

采纳答案by jaypal singh

Try something like this -

尝试这样的事情 -

openssl des3 -salt -in /pritom/uaeyha_com.sql -out /pritom/a.ss -pass pass:pritom

From the manpage:

man页面:

PASS PHRASE ARGUMENTS
Several commands accept password arguments, typically using -passin and -passout for input and output passwords respectively. These allow the password to be obtained from a variety of sources. Both of these options take a single argument whose format is described below. If no password argument is given and a password is required then the user is prompted to enter one: this will typically be read from the current terminal with echoing turned off.

PASS PHRASE ARGUMENTS
Several commands accept password arguments, typically using -passin and -passout for input and output passwords respectively. These allow the password to be obtained from a variety of sources. Both of these options take a single argument whose format is described below. If no password argument is given and a password is required then the user is prompted to enter one: this will typically be read from the current terminal with echoing turned off.

   pass:password
             the actual password is password. Since the password is visible to utilities (like 'ps' under Unix)
             this form should only be used where security is not important.

   env:var   obtain the password from the environment variable var. Since the environment of other processes is
             visible on certain platforms (e.g. ps under certain Unix OSes) this option should be used with
             caution.

   file:pathname
             the first line of pathname is the password. If the same pathname argument is supplied to -passin and
             -passout arguments then the first line will be used for the input password and the next line for the
             output password. pathname need not refer to a regular file: it could for example refer to a device
             or named pipe.

   fd:number read the password from the file descriptor number. This can be used to send the data via a pipe for
             example.

   stdin     read the password from standard input.

回答by Danny

to hide it from the ps command use :

要从 ps 命令中隐藏它,请使用:

temp_varX=pritom ;
openssl .....  -pass fd:0 <<< "$temp_var"