Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
加密bash脚本使用的登录列表--FIFO或。。。?_Bash_Encryption_Scripting - Fatal编程技术网

加密bash脚本使用的登录列表--FIFO或。。。?

加密bash脚本使用的登录列表--FIFO或。。。?,bash,encryption,scripting,Bash,Encryption,Scripting,我有一个bash脚本,它使用一个包含登录列表的文本文件: LOGINLIST=/home/user/logins.txt while read line do echo $line done < $LOGINLIST LOGINLIST=/home/user/logins.txt 读行时 做 回音$线 完成

我有一个bash脚本,它使用一个包含登录列表的文本文件:

LOGINLIST=/home/user/logins.txt
while read line
do
echo $line
done < $LOGINLIST
LOGINLIST=/home/user/logins.txt
读行时
做
回音$线
完成<$LOGINLIST
我不希望将登录列表存储为纯文本,但我不希望每次运行脚本时都必须手动解密它。(让脚本提示输入密码就可以了。)

我可以这样做的一种方法是在脚本中包含一行,例如openssl在读取文件之前对其进行解密。不幸的是,如果脚本停止(可能是它登录的某个站点没有响应),这将使文件在一段不确定的时间内不受保护

所以我宁愿把明文只保留在内存中

这篇关于LinuxQuestions()的帖子表明,将明文发送给FIFO可能会奏效,但这对我来说是完全陌生的领域。有更好/更简单的方法吗?脚本完成后,如何擦除内存


…有没有一种方法可以编辑加密的登录列表,同时将明文保存在内存中?

您可以使用
openssl
进行编辑,并在不更改代码结构的情况下处理替换

要加密该文件,请使用以下方法:

openssl blowfish -in plaint_text_file -out encrytped_file
(选择所需的密码,它将提示您输入密码。)

然后,您可以将加密文件用于:

LOGINLIST=/path/to/encrypted/file
while read line
do
  echo $line
done < <(openssl blowfish -d -in $LOGINLIST)
LOGINLIST=/path/to/encrypted/file
读行时
做
回音$线

完成<您可以使用
openssl
和进程替换来完成,而无需更改代码的结构

要加密该文件,请使用以下方法:

openssl blowfish -in plaint_text_file -out encrytped_file
(选择所需的密码,它将提示您输入密码。)

然后,您可以将加密文件用于:

LOGINLIST=/path/to/encrypted/file
while read line
do
  echo $line
done < <(openssl blowfish -d -in $LOGINLIST)
LOGINLIST=/path/to/encrypted/file
读行时
做
回音$线

完成<您可以在vim中打开名为encrytped_file的现有加密文件,方法是:

openssl blowfish -d -in encrytped_file | vim -
:w !openssl blowfish -in /dev/stdin -out encrytped_file
您可以通过vim创建或修改/覆盖名为encrytped_file的加密文件,方法是:

openssl blowfish -d -in encrytped_file | vim -
:w !openssl blowfish -in /dev/stdin -out encrytped_file
只需查看密码提示。他们会被vim的ui弄得有点模糊

下面是这个答案中使用的技巧。您应该学习它们,而不是复制和粘贴它们,以便在其他情况下使用它们

  • 当给出裸连字符的参数时,vim从管道(又名:stdin或标准输入)读取数据
  • vim可以通过管道将其缓冲区传输到带有
    :w!命令
  • unix命令通常将空连字符解释为“从标准输入读取”,但并非所有命令都这样做。在这种情况下,您可以经常使用
    /dev/stdin

  • 您可以在vim中打开名为encrytped_file的现有加密文件,方法是:

    openssl blowfish -d -in encrytped_file | vim -
    
    :w !openssl blowfish -in /dev/stdin -out encrytped_file
    
    您可以通过vim创建或修改/覆盖名为encrytped_file的加密文件,方法是:

    openssl blowfish -d -in encrytped_file | vim -
    
    :w !openssl blowfish -in /dev/stdin -out encrytped_file
    
    只需查看密码提示。他们会被vim的ui弄得有点模糊

    下面是这个答案中使用的技巧。您应该学习它们,而不是复制和粘贴它们,以便在其他情况下使用它们

  • 当给出裸连字符的参数时,vim从管道(又名:stdin或标准输入)读取数据
  • vim可以通过管道将其缓冲区传输到带有
    :w!命令
  • unix命令通常将空连字符解释为“从标准输入读取”,但并非所有命令都这样做。在这种情况下,您可以经常使用
    /dev/stdin

  • 谢谢这正是我所希望的。在将logins.txt提供给vi时,有没有类似的方法?我可以仿效“crontab-e”为vi提供一个临时文件,然后在vi完成后处理它吗?谢谢!这正是我所希望的。在向vi提供logins.txt时,有没有类似的方法?我是否可以仿效“crontab-e”向vi提供一个临时文件,然后在vi完成后处理它?