跨平台虚拟加密磁盘软件 VeraCrypt

VeraCrypt 是一个跨平台开源磁盘加密软件,支持 Windows、macOS 和 Linux。它是已经停止开发的加密软件 TrueCrypt 的继承者。和 Windows 的 BitLocker 相比,VeraCrypt 使用起来更加简单,数据迁移也更加方便。

VeraCrypt 的主要功能有:

创建加密卷

具体可以参考官方新手教程。需要注意的是:创建加密卷文件时必须指定卷容量。如果选择 NTFS 格式和非隐藏卷,后期可以使用工具 VeraCryptExpander 进行扩容

一键加载

假设我们创建的卷文件为 C:\data,密码为 123456,密钥文件为 C:\key。则可以创建如下命令的快捷方式:

"C:\Program Files\VeraCrypt\VeraCrypt.exe" /p 123456 /k C:\key /l y /a /nowaitdlg y /v C:\data y /q

如果只使用的密钥文件而没有密码,则使用如下命令:

"C:\Program Files\VeraCrypt\VeraCrypt.exe" /k C:\key /tryemptypass /l z /a /nowaitdlg y /v C:\data y /q

可以加上 /e 参数,这样加载成功后会自动用资源管理器打开加载的卷。

将密码直接保存在快捷方式的命令中显然不是很安全。为了提升安全性,可以移除 /p 123456 参数,每次启动时需要手动输入密码。

如果想在开机启动时自动加载,可以将刚才创建的快捷方式保存到开始菜单的启动项中。路径如下:

%AppData%\Microsoft\Windows\Start Menu\Programs\Startup\

也可以在资源管理器地址栏中输入 shell:Startup 并回车来打开启动项文件夹。

一键卸载

卸载加密卷 Z:\ 的命令如下:

"C:\Program Files\VeraCrypt\VeraCrypt.exe" /d z /f /q

卸载所有加密卷的命令如下:

"C:\Program Files\VeraCrypt\VeraCrypt.exe" /d /f /q

一键销毁

销毁加密卷需要删除如下文件:

使用删除命令是不安全的,这样删除的文件可以通过数据恢复工具找回。Linux 下可以使用 shred 命令反复擦写文件来保证文件不可恢复:

bashshred -fuz -n 10 file_to_delete

该命令的 Windows 版可以在 GNU coreutils 工具集中找到,此外 Git for Windows 也自带该命令。

另外,还可以使用 Sysinternals 的 SDelete 命令:

powershellsdelete -p 10 -r -q -f file_to_delete

完整脚本如下:

powershell# 安全删除快捷方式
shred -fuz -n 10 %AppData%\Microsoft\Windows\Start Menu\Programs\Startup\mount.lnk 
# 安全删除密钥文件
shred -fuz -n 10 C:\key
# 直接删除加密卷文件
Remove-Item -Path D:\data -Force