Pab*_*mez 12 encryption vim printing cat decryption
我使用-xvim 中的选项来加密文件。我阅读这些文件的次数比写入文件的次数要多得多,所以我总是使用 cat 然后记住它是加密的,因为它显示的内容..所以我必须使用 vim,输入密码,然后使用:q..退出。
有什么方法可以使用 cat (或其他命令,当然是在某处传递我的密码)并打印/获取内容?或者也许只有一个 vim 选项,它只打印内容而不进入编辑器?
这不是一个优雅的解决方案——它既快速又脏——但它确实适用于单个文件,您可以将其用作 shell 脚本。
这是一个由三个命令组成的序列,它们执行以下操作:
vim -R-c ":set key= | sav ${filename}.plain | qcat ${filename}.plainrm ${filename}.plain最后,您可以拥有一个脚本,该脚本还将密码传递给 vim 命令。作为一个简单的脚本,它将是:
filename=$1
password=$2
vim -R -c ":set key= | sav ${filename}.plain | q" -- ${filename} <<< $password && cat ${filename}.plain && rm ${filename}.plain
Run Code Online (Sandbox Code Playgroud)
其中第一个参数是文件名,第二个参数是密码。
当然,您应该记住以下几点:
${filename}.plain。<<< $password部件。看看开源vimdecrypt:
用于解密 vim-blowfish 加密文件的命令行工具。
从 7.3 版开始,vim 提供强大的内置河豚加密/解密,对于某些目的,这比通过 gnupg 过滤更方便。不幸的是,生成的文件只能由 vim 读回,这使得它们很难在批处理或脚本中使用。如果需要具有 vim 依赖项和大小的程序来解锁加密数据,那么加密数据的寿命也是一个问题。
Vimdecrypt 从 vim 源中提取两个相关文件,blowfish.c 和 sha256.c,并在一个简单的命令行工具中连接它们。从文件中读取数据,解密后的数据写入标准输出。
Run Code Online (Sandbox Code Playgroud)vimdecrypt path_to_data密码是通过 GNU getpass 获得的,它不会干扰 stdin/stdout 重定向。
Vim 的配置系统被完全剥离,这可能会破坏对它开发的 32 位 i386 linux 以外的其他平台的支持。由于这两个相关文件来自未修改的 vim 项目,因此通过修复 vim.h 头文件来恢复对其他平台的支持应该是微不足道的。