怎样在 Linux 中用 Vim 对文件进行密码保护
本文中，我们将向你介绍一种简单的 Vim 使用技巧：在 Linux 中使用 Vim 对文件进行密码保护。我们将向你展示如何让一个文件在它创建的时侯以及为了修改目的而被打开了之后获得安全防护。
Vim 加密
121.238.253.91
涨姿势了。
gxm2052 [Safari 10.1|Mac 10.12]
2017-05-28T22:39:38.000
14.153.13.226
不错不错
hxgoto [Microsoft Edge 14.14393|Windows 10]
2017-06-01T10:19:04.000
36.149.66.248
:setlocal cm=blowfish<br />
:wq<br />
配图都是错的。作者在编译外文的时候也不看一下命令能不能用。<br />
我在按照教程进行强加密的时候就失败了。
来自36.149.66.248的 Firefox 53.0|Windows 10 用户
2017-06-03T12:18:26.000
本文中，我们将向你介绍一种简单的 Vim 使用技巧：在 Linux 中使用 Vim 对文件进行密码保护。我们将向你展示如何让一个文件在它创建的时侯以及为了修改目的而被打开了之后获得安全防护。
![](/data/attachment/album/201705/28/102457j4ha1oacocsccajc.png)


[Vim](https://www.tecmint.com/vi-editor-usage/) 是一种流行的、功能丰富的和高度可扩展的 [Linux 文本编辑器](https://www.tecmint.com/best-open-source-linux-text-editors/)，它的一个特殊功能便是支持用带密码各种的加密方法来加密文本文件。


本文中，我们将向你介绍一种简单的 Vim 使用技巧：在 Linux 中使用 Vim 对文件进行密码保护。我们将向你展示如何让一个文件在它创建的时侯以及为了修改目的而被打开了之后获得安全防护。


**建议阅读：** [你应该在 Linux 中使用 Vim 编辑器的 7 个原因](/article-7728-1.html)


要安装 Vim 完整版，只需运行这些命令：



```
$ sudo apt install vim          #Debian/Ubuntu 系统
$ sudo yum install vim          #RHEL/CentOS 系统 
$ sudo dnf install vim      #Fedora 22+

```

参阅： [十年后 Vim 8.0 发布了](/article-7766-1.html) – [在 Linux 上安装](/article-8094-1.html)


### 怎样在 Linux 中用 Vim 对文件进行密码保护


Vim 有个 `-x` 选项，这个选项能让你在创建文件时用它来加密。一旦你运行下面的 [vim 命令](https://www.tecmint.com/linux-command-line-editors/)，你会被提示输入一个密钥：



```
$ vim -x file.txt
警告：正在使用弱加密方法；参见 :help 'cm'
输入加密密钥：*******
再次输入相同密钥：*******

```

如果第二次输入的密钥无误，你就能可以修改此文件了。


![Vim File Password Protected](/data/attachment/album/201705/28/102515ybuztkxk5elz1eu4.png)


*被密码保护的 Vim 文件*


等你修改好之后，摁 `Esc` 和键入 `:wq` 来保存及关闭文件。下次你想打开它编辑一下，你就必须像这样去输入密钥：



```
$ vim file.txt
需要 "file.txt" 的加密密钥
警告：正在使用弱加密方法；参见 :help 'cm'
输入密钥：*******

```

假设你输了一个错误的密码（或者没输密码），你会看到一些垃圾字符。


![Vim Content Encrypted](/data/attachment/album/201705/28/102515n4954brtnzizbntt.png)


*Vim 中的加密内容*


#### 在 Vim 中设置一种强加密方法


注意：警告信息暗示保护文件的是弱加密方法。那么接下来，我们来看看怎么在 Vim 中设置一种强加密方法。


![Weak Encryption on Vim File](/data/attachment/album/201705/28/102516ac6tgjj8tjrja8lh.png)


*Vim 中文件弱加密*


为了查看加密方式（cm）集，键入如下：



```
:help 'cm'

```

输出样例：



```
                                                *'cryptmethod'* *'cm'*
'cryptmethod'       string  (默认 "zip")
                            全局或本地到缓冲区 |global-local|
                            {not in Vi}
        当缓冲区写进文件中所用的加密方式：
                                                *pkzip*
            zip             PkZip 兼容方式。  一种弱加密方法。
                            与 Vim 7.2 及更老版本后向兼容。
                                                *blowfish*
            blowfish        河豚加密方式。  中级强度加密方法但有实现上
                            的瑕疵。需要 Vim 7.3 及以上版本，用它加密的文件不
                            能被 Vim 7.2 及更老版本读取。它会添加一个 “种子”，
                            每次你当你写入文件时，这个加密字节都不同。


```

你可以像如下所示的那样给一个 Vim 文件设置个新的加密方法（本例中我们用 `blowfish2` 加密方法）



```
:setlocal cm=blowfish2

```

然后键入回车和 `:wq` 保存文件。


![Set Strong Encryption on Vim File](/data/attachment/album/201705/28/102516hx5qno555oiibb3t.png)


*对 Vim 文件设置强加密*


现在你再打开下面的文件时应该就看不到那条警告信息了。



```
$ vim file.txt
需要 "file.txt" 的加密密钥
输入加密密钥：*******

```

你也可以在打开 Vim 文件之后来设置密码，用 `:X` 命令就能像上面所示的那样去设置一个加密密码。


可以看看我们其他的关于 Vim 编辑器的有用的文章。


1. [在 Linux 中学习有用的 Vim 编辑器的技巧](https://www.tecmint.com/learn-vi-and-vim-editor-tips-and-tricks-in-linux/)
2. [给每个 Linux 用户的 8 种有用的 Vim 编辑器技巧](https://www.tecmint.com/how-to-use-vi-and-vim-editor-in-linux/)
3. [spf13-vim – Vim 编辑器的顶级分发版](https://www.tecmint.com/spf13-vim-offers-vim-plugins-vim-editor/)
4. [怎样在 Linux 种把 Vim 编辑当作 Bash IDE 来用](/article-8467-1.html)


本文到这里就结束了！文章中我们介绍了怎么通过 Linux 下的 Vim 文本编辑器来给一个文件做加密防护。


永远记住要用强加密方式及密码来适当的保护那些可能包含了诸如用户名及密码、财务账户信息等机密信息的文本文件。




---


作者简介：


Aaron Kili 是一个 Linux 和 F.O.S.S（Free and Open-Source Software，自由及开放源代码软件）爱好者，未来的 Linux 系统管理员、Web 开发人员，目前是 TecMint 的内容创作者，他喜欢用电脑工作，且崇尚分享知识。




---


via: <https://www.tecmint.com/password-protect-vim-file-in-linux/>


作者：[Aaron Kili](https://www.tecmint.com/author/aaronkili/) 译者：[ch-cn](https://github.com/ch-cn) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

