如何在Linux(或MacOS)上使用Vim对文本文件进行密码保护

VIM文本编辑器是Linux和MacOS上包含的标准工具,可以使用密码快速加密文本文件。它比使用单独的实用程序加密文本文件更快、更方便。下面是如何设置它。

确保系统的Vim支持加密

一些Linux发行版,包括Ubuntu,默认情况下包含VIM的最低版本,仅用于基本文本编辑。例如,Ubuntu称这个包为“vim-mini”。如果您试图在这样一个最低版本的VIM中使用加密,您将看到一条“对不起,此命令在此版本中不可用”的消息。

您可能需要安装完整版的VIM才能在您的Linux发行版上获得此功能。例如,在Ubuntu上,您可以通过运行以下命令获取vim的完整版:

sudo apt install vim

MacOS默认附带的VIM版本确实包括加密支持,因此你不需要在Mac上安装任何其他东西。只需从Finder>Applications>Utilities>Terminal启动一个终端窗口,这些命令在MacOS上的工作方式与在Linux上相同。

如何使用密码加密文件

相关:使用Vi编辑文本文件的初学者指南

如果您知道如何使用vi,则基本过程相对简单。如果不这样做,您可能会被vi的模式界面所困扰。在Vim中打开文本文件时,有两种模式。默认情况下,您处于“命令模式”,在此模式下,您可以使用键盘上的所有键来执行命令。您也可以按“I”进入“插入模式”,在此模式下,您可以像在其他文本编辑器中一样,正常键入并使用箭头键移动光标。要退出插入模式,请按“Esc”,您将返回到命令模式。

首先,启动vim。例如,以下命令将启动vim并将其指向当前目录中名为“example”的文件。如果该文件不存在,则当您保存该文件时,Vim将在当前目录中创建名为“Example”的文件:

vi example

您还可以使用如下所示的命令将vi指向另一条路径。您不必在当前目录中创建文件。

vi /path/to/file

正常编辑文件。例如,您可以按“i”进入插入模式,然后正常键入文本。编辑文件时,请按Esc键以确保处于命令模式而不是插入模式。键入:x并按Enter键。

系统将提示您输入密码,文本文件将使用该密码进行加密。键入要使用的密码,按Enter键,然后再次键入以确认。以后要打开该文件时,您随时都需要输入此密码。

默认情况下,Vim将警告您使用的是弱加密方法。稍后我们将向您展示如何使用更安全的加密方法。

密码将与Vim中的当前文本文件相关联,但您需要在将密码实际分配给该文件之前保存更改。为此,请按Esc键以确保您处于命令模式,然后键入:wq并按Enter键将文件写入磁盘并退出Vim。

下次您尝试在Vim中打开文件时-例如,通过运行“vi Example”-Vim将要求您输入与该文件相关联的密码。

如果您输入了错误的密码,该文件的内容将是胡言乱语。

警告:如果打开文件时看到乱七八糟的内容,请不要保存。这会将损坏的数据保存回文件,并覆盖您的加密数据。只需运行:q退出Vim,而不将文件保存到磁盘。

这里还有另外一条捷径可以使用。您可以不使用“vim/path/to/file”创建文件或打开文件,而是运行以下命令让VIM创建或打开文件,并使其立即提示您使用密码加密文件:

vi -x /path/to/file

注意,这里需要使用小写的x,而从Vim内部运行相关的加密命令时需要使用大写的X。

如何在Vim中启用更强的加密

默认情况下,Vim对这些文件使用非常糟糕的加密。默认的“zip”或“pkzip”加密方法向后兼容VIM 7.2版及更低版本。不幸的是,它很容易被破解--即使是在90年代的硬件上也是如此。正如官方文件所说:“用于‘cryptmethod’‘zip’的算法是易碎的。4个字符的密钥在大约一个小时内,6个字符的密钥在一天内(在奔腾133 PC上)。“

如果您想要任何安全性,就不应该对您的文本文档使用pkzip加密。但是,Vim提供了更好的加密方法。2010年发布的Vim 7.3版本增加了一种“河豚”加密方式,效果更好。2014年发布的7.4.399版本包含了一种新的Blowfish加密方法,修复了原有“河豚”加密方法中的安全问题,并将其命名为“Bowfish 2”。

唯一的问题是,您使用更强的加密方法创建的文件需要这些更新版本的Vim。因此,如果您想使用“blowfish 2”加密,您将只能使用Vim版本7.4.399或更高版本打开该文件。只要您不介意,就应该尽可能使用最强的加密方法。

要检查文件使用的加密方法,请在Vim中打开该文件,按Esc键以确保您处于命令模式,键入以下命令,然后按Enter键。

:setlocal cm?

这里的“cm”代表“cryptmethod”。

您将看到当前文件使用的加密方法显示在VIM屏幕的底部。

要选择加密方法,请运行以下命令之一。“blowfish 2”加密是最安全的。

:setlocal cm=blowfish2 :setlocal cm=blowfish :setlocal cm=zip

选择加密算法后,使用:w命令将文件写入磁盘,或使用:wq命令将文件写入磁盘并退出。

下次在Vim中重新打开该文件时,它不会抱怨加密算法很弱。当您打开文件时,您还会在VIM屏幕的底部看到您选择的加密算法。

如何更改或删除密码

要从文件中删除密码,请在Vim中打开该文件并运行:x命令。系统将提示您提供新的加密密钥。在此输入您要使用的新密码。要完全删除密码,请将密码字段留空,只需按两次Enter键即可。

保存该文件,然后使用:wq退出。该文件将被解密,因此在以后打开该文件时不会提示您输入密码。

请务必记住您设置的任何密码,否则将来将无法访问该文件的内容。