前言:加密的目的我就不多说了,下面讲解各种加密的方法
一 vim加密
(1)设置密码
(1)vim 编辑文件 --> 输入 "大写的:X" 命令, 然后回车
'等价加密方式' --> vim -x'命令行小写' 编辑文件
(2) '然后输入两次密码'进行确认 --> 所键入的字符将用'星号'代替,为了避免由于打字错误引起麻烦,Vim 要求你再'输入一次密码'进行确认
--- 另外'不建议'的方式 ---
设定 'key' 选项来启用加密,此方法不好的原因:因为密码会被明文'显示在屏幕上',任何人都可以'偷看到你的'密码
注意:加密之后保存的时候必须是wq的方式保存,ZZ的方式不行
(2)打开加密文件
vim 编辑文件 --> '提示输入密码'
(3)加密后如果不解密查看内容乱码
设置密码后, 用 'cat, more来查看', "不会提示你输入密码"! 只会显示'乱码'
如果你'试图用另一个程序来阅读'这个文件,你将读到'一堆乱码'
如果你用 Vim 来编辑这个文件,但'输入了错误的密码',你也只能得到乱码
Vim 并'不具备检验密码正确性'的机理 (这一点使得'破译密码'更为困难)
(4)清除密码
'方法一': 使用命令: set key=
'方法二': 同设置密码时一样, 输入命令: X , 然后'设置空密码', 直接'回车两次'
'核心:' 把密码'留空'
(5)加密的局限性
Vim 采用的加密算法有弱点的,它对于防止偷窥者是绰绰有余了,但不足以防止一个手上有大量时间的密码专家。而且交换文件是不加密的;所以当你在编辑文件时,拥有超级用户权限的人能够读取未经加密的文件文本
(6)安全
在编辑文件时所使用的交换文件(swap file)、撤销文件(undo file)和备份文件(backup file)也会同时被加密。当然我们也可以在命令行中利用-n参数,指定不使用交换文件。
注意:不使用交换文件,我们也就不能够通过交换文件来恢复文件了
vim -x -n filename
由于viminfo文件并不会被加密,所以我们可以使用以下命令禁用vimifno文件
:set viminfo=
(7)批量加密
#!/bin/bash
# Encrypt file with vim
if (test $# -lt 2) then
echo Usage: decrypt password filename
else
# $1是加密的字符串,$2是加密的文件
vim -e -s -c ":set key=$1" -c ':wq' $2
echo "$2 encrypted."
fi
vim几个命令参数
-e: Start Vim in 'Ex mode'
-s: 安静'批处理'模式 (只能与 "ex" 一起使用)
-c: 加载'read'第一个文件后执行'command'
测试效果
# 数组的形式,这里最好加上""
for file in *.txt
do
encrypt test $file
done
--- '分割线' ---
encrypt'加密的脚本' --> test'加密的字符串' $file'待加密的文件'
补充:这里'加密字符用了明文',不安全,这里仅仅'用来测试' -->后续可以通过read -s的形式读入一个变量
补充:忘记密码就凉凉了