我有一个文件,我已经加密在vi(vi -x myfile)与blowfish2加密(:setlocal cm=blowfish2)。我可以提供密码和编辑文件没有问题。如果我想做的只是查看文件,是否有一个cat等价物可以接受密码并简单地显示内容?
vi
vi -x myfile
:setlocal cm=blowfish2
cat
k3bvogb11#
首先,我们谈论的是Vim,因为Vi没有加密功能。我没有一个“没有Vim”的答案,但我有一个看起来和感觉有点像cat的答案。更多的解释可以在Pipe Vim buffer to stdout的答案中找到。一般的想法是以批处理模式运行Vim(参见:help -s-ex),:print所有作为参数传递的文件,然后立即退出。这就是下面这个别名的作用:
:help -s-ex
:print
alias vimcat="vim -es -c'argdo %print' -c'qa!'"
字符串需要注意的是,Vim处于静默模式。当遇到加密文件时,它会要求输入密钥,但提示符会被吞掉,看起来就像卡住了一样。如果你记住了这一点,你可以输入密钥并继续。有两种方法可以缓解,您可以添加-x选项并在启动时立即输入密钥(也没有提示和两次)。另一种方法是通过-u key.vim传递一个配置文件,其中包含set key=<your secret key>行。当然,这意味着将密钥以纯文本形式保存在文件中,从安全Angular 来看可能是不可接受的。我深入研究了一下,想找到一个更优雅的解决方案(没有成功)。Vim用魔法字符串VimCrypt~03!作为加密文件的前缀,其中03代表blowfish2加密。这后面是我假设的salt,加密文件内容排在最后。因此,难怪OpenSSL无法处理由Vim加密的文件(正如用户phd已经评论的那样).我尝试了一些简单的方法,比如用OpenSSL可能会消化的东西替换神奇的VimCrypt字符串,但没有成功。下一步是深入研究Vim的Blowfish算法的源代码,在此之前我就停止了。回顾过去几天的情况,我认为最有希望的解决方案是使用Vim的加密算法(这是开源的)。这可以变成一个独立的可执行文件,从stdin读取并写入stdout。另一个想法是创建一个OpenSSL插件,以便它可以与它一起使用。这需要一些编码。
-x
-u key.vim
set key=<your secret key>
VimCrypt~03!
03
blowfish2
1条答案
按热度按时间k3bvogb11#
首先,我们谈论的是Vim,因为Vi没有加密功能。
我没有一个“没有Vim”的答案,但我有一个看起来和感觉有点像
cat
的答案。更多的解释可以在Pipe Vim buffer to stdout的答案中找到。一般的想法是以批处理模式运行Vim(参见
:help -s-ex
),:print
所有作为参数传递的文件,然后立即退出。这就是下面这个别名的作用:
字符串
需要注意的是,Vim处于静默模式。当遇到加密文件时,它会要求输入密钥,但提示符会被吞掉,看起来就像卡住了一样。如果你记住了这一点,你可以输入密钥并继续。
有两种方法可以缓解,您可以添加
-x
选项并在启动时立即输入密钥(也没有提示和两次)。另一种方法是通过-u key.vim
传递一个配置文件,其中包含set key=<your secret key>
行。当然,这意味着将密钥以纯文本形式保存在文件中,从安全Angular 来看可能是不可接受的。我深入研究了一下,想找到一个更优雅的解决方案(没有成功)。Vim用魔法字符串
VimCrypt~03!
作为加密文件的前缀,其中03
代表blowfish2
加密。这后面是我假设的salt,加密文件内容排在最后。因此,难怪OpenSSL无法处理由Vim加密的文件(正如用户phd已经评论的那样).我尝试了一些简单的方法,比如用OpenSSL可能会消化的东西替换神奇的VimCrypt字符串,但没有成功。下一步是深入研究Vim的Blowfish算法的源代码,在此之前我就停止了。
回顾过去几天的情况,我认为最有希望的解决方案是使用Vim的加密算法(这是开源的)。这可以变成一个独立的可执行文件,从stdin读取并写入stdout。另一个想法是创建一个OpenSSL插件,以便它可以与它一起使用。
这需要一些编码。