Linux用vim/vi给文件加密和解密/zz/

linux文件为了防止被人随便打开收看,可以使用那个vim自带的加密功能,对文本文件进行加密,以防止人直接看到内容。

然而在使用Vim编辑文件保存时时,有时候可能输入:X(shift键未及时按下松开),这时体统会提示:

Enter encryption key:

原来:X命令是加密文本的命令。根据提示输入密钥,然后会再次提示:

Enter same key again:

加密后的文本需要密钥才可查看。

有加密就需要有取消加密,取消密钥需在打开文件后(如果文件已加密,当然需要先输入密钥才能进行如下操作

在命令行模式下:

: set key= 

将密钥赋值为空(必须要有空格)即可。

问题是vim是如何加密文件的?答案是vim采用了BlowFish加密算法(7.3版本),密钥存储在key这个选项中。

实际操作的过程中还遇到一个问题,在设置加密密钥后保存文件,只有用:wq才可以,用:x不可以。看了这两个命令不是完全等价的,查看帮助文档发现::wq是将缓冲区中的内容写入文件,而:x则需要缓冲区内容被修改时才会将缓冲区中的内容写入文件。

由此看来设置密钥不会改变缓冲区的内容,缓冲区的内容就不会被加密存入文件了。