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



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

LOGINLIST=/home/user/logins.txt
while read line
do
echo $line
done < $LOGINLIST

我宁愿不将登录列表存储为纯文本,但我不想每次运行脚本时都必须手动解密它。(让脚本提示输入密码是可以的。

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

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

这篇关于LinuxQuestions(http://www.linuxquestions.org/questions/programming-9/can-we-hide-the-code-of-a-shell-script-370328/#post1887648)的文章表明,将明文发送到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)

这将提示您输入密码。未生成临时文件。

(小心最后一个命令中的空格,它确实是< <(

您可以使用以下命令在 vim 中打开名为 encrytped_file 的现有加密文件:

openssl blowfish -d -in encrytped_file | vim -

您可以使用以下命令通过 vim 创建或修改/覆盖名为 encrytped_file 的加密文件:

:w !openssl blowfish -in /dev/stdin -out encrytped_file

只需查找密码提示。它们会被 vim 的 ui 遮挡一点。

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

  1. 当给出裸连字符的参数时,vim 从管道(又名:stdin 或标准输入)读取。
  2. vim 可以通过管道将其缓冲区传送到带有:w !command
  3. 命令
  4. Unix 命令将裸连字符解释为"从标准输入读取"是很常见的,但并非所有命令都这样做。在这种情况下,您通常可以使用/dev/stdin

相关内容

  • 没有找到相关文章

最新更新