安全的方法是根本不使用临时文件。
当您使用 VIM 时,vim 可以读取加密的二进制文件,在内存中对其进行解密,然后让您对其进行编辑。它反转了在保存时对其进行加密的过程。
将以下内容添加到您的 .vimrc (或其他相关文件)
" OpenSSL encrypted files.
" PBKDF v1.5 (salted) aes-256-cbc encrypted file. (File magic "Salted__")
augroup ossl
autocmd!
autocmd BufReadPre,FileReadPre *.ossl set binary
autocmd BufReadPre,FileReadPre *.ossl set history=0 cmdheight=3 viminfo=
autocmd BufReadPre,FileReadPre *.ossl set noswapfile nowritebackup
"
autocmd BufReadPost,FileReadPost *.ossl set shell=/bin/sh shellredir=>
autocmd BufReadPost,FileReadPost *.ossl '[,']!openssl aes-256-cbc -d -salt
autocmd BufReadPost,FileReadPost *.ossl set nobinary cmdheight& shell&
autocmd BufReadPost,FileReadPost *.ossl let b:encflag=1
autocmd BufReadPost,FileReadPost *.ossl exe "doau BufReadPost
".expand("%:r")
autocmd BufReadPost,FileReadPost *.ossl redraw!
"
autocmd BufWritePre,FileWritePre *.ossl mark z
autocmd BufWritePre,FileWritePre *.ossl set binary cmdheight=3
shell=/bin/sh
autocmd BufWritePre,FileWritePre *.ossl '[,']!openssl aes-256-cbc -salt
"
autocmd BufWritePost,FileWritePost *.ossl undo
autocmd BufWritePost,FileWritePost *.ossl set nobinary cmdheight& shell&
autocmd BufWritePost,FileWritePost *.ossl 'z
augroup END
现在,如果您编辑任何以 .ossl 后缀结尾的文件,您将被要求输入密码来解密它。当您写入时,系统会要求您输入两次密码以重新加密。
注意:不要单独使用 :wq 使用 :w 和 :q !
警告:为安全起见,专门关闭交换文件和备份文件。
PS:此系统也适用于 PGP/GPG 文件加密以及编辑 Gzip 文件。它所需要的只是一个加密/解密流式(管道)数据的命令。
有关此和其他 VIM 加密/解密方法的更多信息,请参阅...
http://www.ict.griffith.edu.au/anthony/info/crypto/file_encrypt.hints