Linux 下的文件加密

2009-06-26 xiao H Posted in 系统管理

以前我在blog 写过两篇关于linux 下目录加密的文章用Cryptkeeper和EncFS 完成目录加密用Cryptsetup LUKS 加密目录,今天我想说说文件加密,先说简单的用VIM 加密文本文件

vim 加密使用 -x 参数,即

vim -x myfile

然后会提示让你输入两次密码,这样就算给你的文件加上密码了,下次要看文件用VIM 打开会要求输入密码,输入错误密码则会得到一堆乱码,用其他编辑器打开也是一堆乱码。要清除密码只要在正确打开文件后用 “:X” 指令,然后给一个空密码就行。
当然vim 加密还是有很多局限的,算法弱并且中间会有交换文件,交换文件是不加密的,虽然有”-n” 参数可以不使用交换文件但不用交换文件让我不得不时刻记得要存盘。

vim加密的算法很弱所以要更好的保护你的文件你需要专业的加密工具,如openssl,gpg。
对称加密:

a.用openssl 加密文件:

加密

openssl enc -aes-128-ecb -e -in myfile-out myfile-aes

解密

openssl enc -aes-128-ecb -d -in myfile-aes -out myfile

enc 后面跟你具体的加密算法
-aes-128-ecb 所使用的算法
-e/-d 加密/解密
-in 要被加/解密的文件
-out 被加/解密后的文件

b.用GnuPG加密文件

关于GnuPG 之前有另一篇博文 我的GnuPG 使用笔记有关于GnuPG 更多的内容这里只说一下加密。
加密

gpg -c myfile #输入密码后会产生一个myfile.gpg 文件,这就是加密后的文件。

解密

gpg -o myfile -d myfile.gpg #解密文件myfile.gpg 并将解密后的文件输出为myfile。

非对称加密
前面说的都是对称加密,现在说一下非对称加密,这个应该说是我们目前使用的最安全的方法了。
加密

gpg -ea -r "lily.yu" hello.txt 
#使用lily.yu 这个密钥加密hello.txt,你会得到一个加密后的文件hello.txt.asc。-a 表示已ASCII 输出.

解密

gpg -o new.txt -d hello.txt.asc #解密hello.txt.asc 文件并输出到 new.txt 文件。

至于如何创建密钥管理密钥请参看我的GnuPG 使用笔记

标签:, ,

与本文关系暧昧的文字

除特别声明外,本站作品皆为原创并以知识共享署名-相同方式共享 3.0 许可协议进行许可。
转载请注明 作者:xiao H,出处:linuxbyte.org ,原始链接:Linux 下的文件加密



  1. sui90 说:

    你写的文章都还不错, 学习中, Xd。

    我在 Debian 试了下 发现 vim 下 没有 -x 参数 。。。
    # vim –help
    都没出现这个参数。。。
    Good luck

    • xiao H 说:

      man vim 看到的
      -x Use encryption when writing files. Will prompt for a crypt key.
      vim -help 的结果。
      -x Edit encrypted files

      我是Centos 系统,下面是我安装的相关包
      $ rpm -qa|grep vim
      vim-minimal-7.0.109-4.el5_2.4z
      vim-common-7.0.109-4.el5_2.4z
      vim-enhanced-7.0.109-4.el5_2.4z
      可能是包不同的缘故吧。

我来说两句

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">