以编程方式读取vi加密文件

时间:2014-11-14 11:49:11

标签: encryption grep vi

我有一个vi加密文本文件,用于存储DB的登录详细信息。现在在我的shell脚本中,我希望获得内容grep DB_NAME login_details.txt

如何将vi加密密码传递给grep命令?

2 个答案:

答案 0 :(得分:2)

我相信所有内容都在这个vim wikia页面上解释:http://vim.wikia.com/wiki/Encryption。 全部阅读(它会警告你文件实际加密的时间,viminfo应该被取消等等......)

特别是展示了如何知道:setlocal cm?使用的加密(“显示当前文件的加密方法”)以及如何使用:setlocal cm=...更改加密。 但这不是交互式的“per say”...但你可以使用等效的命令行让vim从命令行执行此操作(然后可以在脚本中使用),添加命令以打印相关的行

如果您的意思是vi而不是vim,则需要指定它所在的操作系统,并查看vi encryption: what algorithm has been used? 这个页面显示了2种解决方案,具体取决于所使用的操作系统类型(我非常确定有一种方法可以“在运行中”进行等效操作,即在磁盘上没有解密文件...查找mcrypt -d - -force ...(没有指定目标文件,所以它必须转到stdout。你需要--force,否则mcrypt拒绝输出到stdout)

答案 1 :(得分:0)

thing=$(echo '1,$'|vim --cmd "set key=${password}" ${filename} -es|grep needle)

这将使用您以前以某种方式设置的变量读取的密码和文件加载到vim,然后将整个文件内容转储到stdout,然后将gnee字符串“ needle”转储,如果存在,它将被存储作为$ thing变量。

此示例是一个不好的做法,您应该使用现有工具来完成安全解密。