博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vim 加密(crypt)文本文档
阅读量:5900 次
发布时间:2019-06-19

本文共 1425 字,大约阅读时间需要 4 分钟。

算法

vim7.3版本支持两种加密方式——PKzip算法(已知有缺陷的)、Blowfish算法(从7.3版本开始支持)、Blowfish2算法(从7.4.399版本开始支持)

而vim -x 默认采用PKzip算法加密。
在保存之前可以通过“:setlocal cm=blowfish”来设置加密算法。也可以在启动设定文件中加入此语句,如同设置启动配色方案一样。

blowfish算法跟MD5、SHA都计算的太快,就容易导致太容易破解(如果量子计算机突然取得突破的话,呵呵,目前还未突破)。本来以为vim是否会采用bcrypt算法,设置停顿时间,来让计算速度变得慢下来(正常使用感受不到,暴力破解时原先1秒破解的,现在大概需要3年吧...),可惜不是。

结论:

1、vim默认算法PKzip不适合加密太隐私的数据。
2、采用新版vim,采用blowfish算法后,加密文件本身是安全的。但是由于交换文件(可以关闭)、内存缓存(未加密)是不安全的,也就是过程不安全,所以,如果需要严格保密,也不宜使用vim加密。
3、vim加密过程还是挺容易误操作的(在不输入密码以乱码打开文件、以undo等方式操作文件过程中),且没有消息完整性验证机制,vim官方推荐加密要求高的用户采用PGP、GPG加密软件。

 

如果:version命令的输出信息中包含了+cryptv 选项, 那么说明你安装的Vim已经启用了加密功能。7.3之前的版本提供用于向后兼容的PkZip加密算法;自7.3版本开始提供较强的Blowfish加密算法;而从7.4.399版本开始支持更新的Blowfish2加密算法

vim --version | grep cryptv +cryptv            +lispindent        +quickfix          +wildmenu

使用以下命令,可以查看当前使用的加密算法:

:set cm?

使用以下命令,可以切换使用的不同加密算法:

:set cm=zip:set cm=blowfish:set cm=blowfish2

 

加密

我们可以使用Vim的-x启动参数,创建加密文件:

vim -x filename

Vim会要求你重复输入两次密钥。而当我们完成编辑并退出时,Vim就会对文本进行加密处理。此后,如果使用其它软件查看加密后的文件,那么将只会看到无意义的乱码;而如果使用Vim打开加密文件,则会要求你输入密钥以正确显示内容。

解密

使用以下命令将选项key置空,解除加密:

:set key=

我们也可以通以下命令,重置密钥:

:set key=secret

但以上命令将会以明文显示输入的密码,显然不够安全。而使用以下X(大写)命令,则会以星号*显示输入的密码,所以更加安全。

:X

 

安全

在编辑文件时所使用的交换文件(swap file)、撤销文件(undo file)和备份文件(backup file)也会同时被加密。当然我们也可以在命令行中利用-n参数,指定不使用交换文件(注意:不使用交换文件,我们也就不能够通过交换文件来恢复文件了。):

vim -x -n filename

由于viminfo文件并不会被加密,所以我们可以使用以下命令禁用vimifno文件:

:set viminfo=

 

转载于:https://www.cnblogs.com/wpjamer/p/9503466.html

你可能感兴趣的文章
Java中为什么需要Object类,Object类为什么是所有类的父类
查看>>
angularjs-paste-upload
查看>>
RXjs相关
查看>>
linux基础命令 head
查看>>
objective c:import和include的区别, ""和<>区别
查看>>
spring SchedulerFactoryBean 没有创建 Scheduler的实现类bea
查看>>
基于cobbler实现自动化安装系统
查看>>
The Shared folder with you
查看>>
BodyPaint__操作步骤
查看>>
poj 2234 Matches Game
查看>>
2018年全国多校算法寒假训练营练习比赛(第五场)
查看>>
sax方式解析XML学习笔记
查看>>
Springboot配置(上)
查看>>
Luogu345: [POI2007]POW-The Flood
查看>>
java--Eclipse for mac 代码提示(代码助手,代码联想)快捷键修改
查看>>
Jdom的简单操作
查看>>
left join on/right join on/inner join on/full join on连接
查看>>
Codeforces 582B Once Again
查看>>
template.helper 多参数
查看>>
RadioButton布局图片+文字 实现tabhost效果
查看>>