Disk encryption with strong security based on TrueCrypt
此档案包含 VeraCrypt 的源代码。 它基于原始的 TrueCrypt 7.1a,并进行了安全性增强和修改。
重要事项
您仅可在接受并同意本档案中包含的“License.txt”文件内的许可条款的前提下,使用本档案中的源代码。
请注意,许可条款规定,例如,衍生作品不得命名为“TrueCrypt”或“VeraCrypt”。
目录
I. Windows
构建 Windows 版 VeraCrypt 的要求:
有关如何在 Windows 上构建 VeraCrypt 的详细指南,请参见存储库中的文档,该指南也可在在线或镜像站点获取。
重要提示:
64 位版本的 Windows Vista 及更高版本的 Windows,在某些情况下(例如播放 HD DVD 内容时)32 位版本也一样,不允许 VeraCrypt 驱动程序在没有适当数字签名的情况下运行。 因此,官方 VeraCrypt 二进制软件包中的所有 .sys 文件均使用 IDRIX 的数字证书进行了数字签名,该证书由 GlobalSign 证书颁发机构颁发。在每个官方 .exe 和 .sys 文件的末尾,都嵌入了数字签名和所有相关证书(即相关证书链中的所有证书,例如证书颁发机构证书、CA-MS 交叉证书以及 IDRIX 证书)。
如果您编译 VeraCrypt 并将您的二进制文件与官方二进制文件进行比较,请记住这一点。如果您的二进制文件未签名,则官方二进制文件的大小通常会比您的二进制文件大大约 10 KiB(如果您使用不同版本的编译器,或者为 Visual Studio 安装了不同的服务包或未安装服务包,或者为其安装了不同的热修复程序,或者使用了不同版本的所需 SDK,则可能会有进一步的差异)。
VeraCrypt Windows 版本签名与打包说明:
首先,创建一个环境变量“WSDK81”,指向 Windows 8.1 SDK 的安装目录。
“Signing”文件夹中包含一个批处理文件(sign.bat),该文件将使用证书存储中的代码签名证书对所有 VeraCrypt 组件进行签名,并构建最终的安装程序和 MSI 包。此批处理文件假定代码签名证书由 GlobalSign 颁发,IDRIX 的证书即为此类。如果您的证书由其他证书颁发机构(CA)颁发,则应将其中间证书放入“Signing”文件夹,并相应修改 sign.bat。
要生成 MSI 包,必须安装 WiX Toolset v3.11。
VeraCrypt EFI 引导加载程序:
VeraCrypt 源代码在 src\Boot\EFI 目录下包含预构建的 EFI 二进制文件。 VeraCrypt EFI 引导加载程序的源代码采用 LGPL 许可,可从 https://github.com/veracrypt/VeraCrypt-DCS 获取。 有关构建说明,请参阅文件 src\Boot\EFI\Readme.txt。
II. Linux 和 Mac OS X
有关在 Linux 上构建 VeraCrypt 的详细指南,请参见存储库中的文档,该指南也可通过在线方式或镜像站点获取。
Linux 和 Mac OS X 版 VeraCrypt 构建要求:
- GNU Make
- GNU C++ 编译器 4.0 或兼容版本
- Apple Xcode 或 Xcode 命令行工具(仅适用于 Mac OS X)
- YASM 1.3.0 或更高版本(仅适用于 Linux,且仅限 x86/x64 架构)
- pkg-config
- 已安装的 wxWidgets 3.0 共享库和头文件,或 wxWidgets 3.0 库源代码(可从 https://www.wxwidgets.org 获取)
- FUSE 库和头文件(可从 https://github.com/libfuse/libfuse 和 https://macfuse.github.io/ 获取)
- PCSC-lite 库和头文件(可从 https://github.com/LudovicRousseau/PCSC 获取)
VeraCrypt for Linux 和 Mac OS X 构建说明:
-
将当前目录切换到 VeraCrypt 源代码的根目录。
-
如果未安装 wxWidgets 共享库,请运行以下命令为 VeraCrypt 配置并构建 wxWidgets 静态库:
$ make WXSTATIC=1 WX_ROOT=/usr/src/wxWidgets wxbuild变量
WX_ROOT必须指向 wxWidgets 库的源代码位置。输出文件将放置在 './wxrelease/' 目录中。 -
要构建 VeraCrypt,请运行以下命令:
$ make如果未安装 wxWidgets 共享库,则运行:
$ make WXSTATIC=1 -
如果构建成功,VeraCrypt 可执行文件应位于 'Main' 目录中。
可重现构建说明:当未设置 SOURCE_DATE_EPOCH 时,从 git 检出的构建使用 HEAD 提交时间戳,而从发布 tarball 构建则使用 src/Common/Tcdefs.h 中的发布日期(UTC 时间 00:00)。要从 git 检出重现官方发布制品,请显式设置 SOURCE_DATE_EPOCH 或从发布 tarball 构建。在另一个 git 检出中跟踪的 Vendored VeraCrypt 源代码将以相同方式处理,并使用该检出的 HEAD 时间戳。
生成的 .deb 和 .rpm 包均具有可重现性,包括在缺少 SOURCE_DATE_EPOCH/_buildhost 构建宏的旧版 rpm(例如 CentOS/RHEL 7)上。
默认情况下,构建的是支持图形用户界面和文本用户界面(通过 --text 开关)的通用可执行文件。 在 Linux 上,可以使用 'NOGUI' 参数构建仅控制台可执行文件,该文件不需要 GUI 库:
$ make NOGUI=1 WXSTATIC=1 WX_ROOT=/usr/src/wxWidgets wxbuild
$ make NOGUI=1 WXSTATIC=1
Arch Linux 软件包构建:
Arch Linux 用户可以使用 makepkg 从当前检出构建并安装软件包:
$ cd src/Build/Packaging/arch
$ makepkg -si
在 MacOSX 上,不支持构建仅控制台可执行文件。
Mac OS X 特定说明:
在 MacOSX 下,默认使用最新安装的 SDK。要在使用 make 构建时使用不同版本的 SDK,可以导出环境变量 VC_OSX_SDK:
$ export VC_OSX_SDK=13.0
对于开发依赖管理,可以使用 homebrew。
$ brew install pkg-config yasm wxwidgets
还需要系统依赖项
$ brew install --cask macfuse packages
通过 brew 安装依赖项后,可以构建本地开发版本
$ ./src/Build/build_veracrypt_macosx.sh -b
如果要构建软件包,必须向上述构建脚本传递 -p。构建的可执行文件将位于 .src/Main 中。
如果倾向于从源代码构建,或不使用 homebrew,则必须安装 pkg-config 和 packages。
从 https://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz 获取 pkg-config,并使用以下命令编译:
$ CFLAGS="-Wno-int-conversion" CXXFLAGS="-Wno-int-conversion" ./configure --with-internal-glib
$ make
$ sudo make install
确保 pkg-config 可用后,从 https://macfuse.github.io/ 下载并安装 macFUSE。
build_veracrypt_macosx.sh 脚本执行 VeraCrypt 的完整构建,包括创建安装程序 pkg。它期望在放置 VeraCrypt 源代码的同一级别找到 wxWidgets 3.2.5 源代码(即,如果 "src" 路径为 "/Users/joe/Projects/VeraCrypt/src",则 wxWidgets 应位于 "/Users/joe/Projects/wxWidgets-3.2.5")。
make 构建过程使用代码签名证书,其 ID 在 src/Main/Main.make 中指定(查找包含 "Developer ID Application" 和 "Developer ID Installer" 的行)。必须修改这些行以放入代码签名证书的 ID,或者如果没有证书,则将其注释掉。
由于与 macFUSE 的不兼容性问题,SDK 10.9 生成的 VeraCrypt 二进制文件在与 macFUSE 内核扩展通信时存在问题。因此,建议使用其他 macOS SDK 版本构建 VeraCrypt。
用于 VeraCrypt 官方构建的 Packages 安装程序已由 IDRIX 进行公证,可从 https://github.com/idrassi/packages/releases 获取。
III. FreeBSD 和 OpenBSD
从 14 版本开始支持 FreeBSD。 从 7.8 版本开始支持 OpenBSD。 构建要求和说明与 Linux 相同,只是应使用 gmake 而非 make。
IV. 第三方开发者(贡献者)
如果您打算实现某项功能,请先与我们联系,以确保:
- 该功能尚未被实现(我们可能已经实现但尚未发布代码)。
- 该功能是可接受的。
- 我们是否需要第三方开发者协助实现该功能。
联系我们的方式可在以下网址找到: https://veracrypt.jp 或 https://veracrypt.io(镜像)
V. 法律信息
版权信息
本软件整体:
Copyright (c) 2026 AM Crypto. All rights reserved.
本软件部分内容:
Copyright (c) 2026 AM Crypto. All rights reserved.
Copyright (c) 2013-2025 IDRIX. All rights reserved.
Copyright (c) 2003-2012 TrueCrypt Developers Association. All rights reserved.
Copyright (c) 1998-2000 Paul Le Roux. All rights reserved.
Copyright (c) 1998-2008 Brian Gladman, Worcester, UK. All rights reserved.
Copyright (c) 1995-2023 Jean-loup Gailly and Mark Adler.
Copyright (c) 2016 Disk Cryptography Services for EFI (DCS), Alex Kolotnikov
Copyright (c) 1999-2023 Dieter Baron and Thomas Klausner.
Copyright (c) 2013, Alexey Degtyarev. All rights reserved.
Copyright (c) 1999-2016 Jack Lloyd. All rights reserved.
Copyright (c) 2013-2019 Stephan Mueller smueller@chronox.de
Copyright (c) 1999-2023 Igor Pavlov
欲了解更多信息,请参阅源代码各部分所附的法律声明。
商标信息
源代码、二进制文件和/或文档中包含的任何商标均为其各自所有者的专有财产。