vim 加密(crypt)文本文档
算法
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=
vim 加密(crypt)文本文档的更多相关文章
- Java 把一个文本文档的内容复制到另一个文本文档
src.txt放在工程目录下,dest.txt可创建,也可不创建.一旦运行程序,如果dest.txt不存在,将自行创建这个文本文档,再将src.txt中的内容复制到dest.txt import ja ...
- c#读取文本文档实践4-读入到list泛型集合计算后写入新文档
商品 数量 单价英语 66 100语文 66 80数学 66 100化学 66 40物理 66 60 上面截图是要处理的文本文档内容,目的是计算出总价并加在最后一列. 这一篇与上一篇比较类似,目的相同 ...
- c#读取文本文档实践3-写入到文本本文档
首先通过File.ReadAllLines()方法读入文本文档中内容并返回字符串数组contents,这样每行数据就成为了这个字符串数组contents的一个元素,再利用split()方法将每一个元素 ...
- c#读取文本文档实践2-计算商品价格
商品 数量 单价英语 66 100语文 66 80数学 66 100化学 66 40物理 66 60 上面是文本文档中读入的数据. using System; using System.Collect ...
- c#读取文本文档实践1-File.ReadAllLines()
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...
- c#读写文本文档-1-用file类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...
- C# 读取文本文档(转)
1.添加命名空间 System.IO; System.Text; 2.文件的读取 (1).使用FileStream类进行文件的读取,并将它转换成char数组,然后输出. byte[] byData = ...
- matlab中读取txt数据文件(txt文本文档)
matlab中读取txt数据文件(txt文本文档) 根据txt文档不同种类介绍不同的读取数据方法 一.纯数据文件(没有字母和中文,纯数字) 对于这种txt文档,从matalb中读取就简单多了 例如te ...
- 电脑右键新建文本文档(txt)消失的解决办法
其实只需要一个注册表就可以了 下载地址http://pan.baidu.com/s/1hr7r0fM 拿走不谢! 注册表的内容是这样的,你也可以新建一个文件把后缀名改成.reg然后把下面的内容copy ...
随机推荐
- [luogu P3953] [noip2017 d1t3] 逛公园
[luogu P3953] [noip2017 d1t3] 逛公园 题目描述 策策同学特别喜欢逛公园.公园可以看成一张$N$个点$M$条边构成的有向图,且没有 自环和重边.其中1号点是公园的入口,$N ...
- uva 10288 gailv
Problem F Coupons Input: standard input Output: standard output Time Limit: seconds Memory Limit: MB ...
- Gradient Boosting, Decision Trees and XGBoost with CUDA ——GPU加速5-6倍
xgboost的可以参考:https://xgboost.readthedocs.io/en/latest/gpu/index.html 整体看加速5-6倍的样子. Gradient Boosting ...
- 在 ubuntu18.04 中搭建 Django 开发环境
在Ubuntu 18.04 安装 python3.pip3.pycharm,搭建 Django 开发环境. 1.安装 python3 pip3 sudo apt-get install python3 ...
- maven项目搭建步骤
maven项目搭建步骤 班级:软件151 姓名:黄于霞 一.准备以下压缩包 1.JDK1.7 文件:jdk1.7.rar 2. eclipse-jee-mars-2 文件:32位系 ...
- C# 操作数据库常用的 SqlDbHelper
原博客园转载于 https://www.cnblogs.com/felix-wang/p/6742785.html using System; using System.Collections.G ...
- _net之美 记录笔记
第一章: Valpoint vPoint1=new Valpoint(); Console.WriteLine(vPoint1.x); 1.=号左边ValPoint vPoint1,在线程上创建一个V ...
- JS-3
运算符 数学运算符 + - * / %(取模运算符) js内置一个对象叫Math,Math提供了很多关于计算的方法,常见的 // 随机数 console.log(Math.random()); // ...
- S2T40,第四章,简答5
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- <转载> UE4的Actor类C++简单尝试
原文链接: 简书小小酥XX https://www.jianshu.com/p/2bcc80f0e789 一开始我用了一段时间UE4,发现如果用蓝图系统真的不太适合我的风格.因为之前一直都是用Un ...