当前位置: 首页 > 工具软件 > TrueCrypt > 使用案例 >

TrueCrypt加密:TrueCrypt Format创建加密卷(1)

谢泽语
2023-12-01

1.TrueCrypt Format创建加密卷
按照TrueCrypt Format创建加密卷的向导,一共会出现加密卷位置,加密算法、加密卷大小、加密卷密码、加密卷格式化等几个步骤,之后就会创建加密卷,创建完的加密卷就是制定的加密卷位置的那个文件了。

TrueCrypt项目中TCFormatVolume具体参数:
typedef struct
{
    BOOL bDevice;
    BOOL hiddenVol;
    char *volumePath;
    unsigned __int64 size;
    unsigned __int64 hiddenVolHostSize;
    int ea;
    int pkcs5;
    uint32 headerFlags;
    int fileSystem;
    int clusterSize;
    BOOL sparseFileSwitch;
    BOOL quickFormat;
    int sectorSize;
    int *realClusterSize;
    Password *password;
    HWND hwndDlg;
}
FORMAT_VOL_PARAMETERS;

int TCFormatVolume (volatile FORMAT_VOL_PARAMETERS *volParams)
{...}
参数 类型 含义 示例
bDeviceBOOL 是否是一个分区卷 FALSE
hiddenVol BOOL 是否是隐藏卷 FALSE
volumePath char * 用户选择的加密卷文件 C://1.txt
size unsigned __int64加密卷大小(以byte为单位) 10*1024*1024
hiddenVolHostSize unsigned __int64 隐藏加密卷大小(以byte为单位) 0
ea int 默认加密的算法 1
pkcs5 int 哈希算法 DEFAULT_HASH_ALGORITHM
headerFlags uint32 0
fileSystem int 文件系统 FILESYS_FAT
clusterSize int 0
sparseFileSwitch BOOL TRUE
quickFormat BOOL 是否是快速格式化 FALSE
sectorSize int 512
realClusterSize int 512
password Password 用户输入的密码 123
hwndDlg HWND 传入的窗口句柄 NULL

2.实际调用

int __cdecl volTransformThreadFunctionTest (char *fileUrl,char *Pword,int size)
{
    Randinit();
    volatile FORMAT_VOL_PARAMETERS *volParams = (FORMAT_VOL_PARAMETERS *) malloc (sizeof(FORMAT_VOL_PARAMETERS));
    //char * fileUrl = "C:\\Users\\Administrator\\Pictures\\1.bat";
    int nSize = 512;
    //char * Pword = "123";
    Password pWord;
    strcpy((char *)pWord.Text,Pword);
    //pWord.Length = strlen(Pword);
    pWord.Length = strlen((char *)pWord.Text);


    volParams->bDevice = false;
    volParams->hiddenVol = false;
    volParams->volumePath = fileUrl;
    volParams->size = size;
    volParams->hiddenVolHostSize = 0;
    volParams->ea = 1;
    volParams->pkcs5 = DEFAULT_HASH_ALGORITHM;
    volParams->headerFlags = CreatingHiddenSysVol() ? TC_HEADER_FLAG_ENCRYPTED_SYSTEM : 0;
    volParams->fileSystem = 1;
    volParams->clusterSize = 0;
    volParams->sparseFileSwitch = true;
    volParams->quickFormat = false;
    volParams->sectorSize = GetFormatSectorSize();
    volParams->realClusterSize = &nSize;
    volParams->password = &pWord;
    volParams->hwndDlg = NULL;

    int nStatus = TCFormatVolume (volParams);

    return nStatus;
}

函数结果:

结果含义
0成功
1操作系统错误
2内存溢出
3密码错误
4卷格式损坏
5不被发现
6文件已打开
7卷的大小错误
8不支持压缩
9密码类型错误
10密码更改卷的版本错误
11找不到卷
12写入卷错误
13文件被锁
14文件正在被使用
15驱动程序版本错误
16需要新版本
17密码初始化失败
18弱密钥初始化
19自行测试失败
20扇区大小不兼容
21卷已安装
22没有免费的驱动器
23文件打开失败
24卷装入失败
25反对无效的设备
26拒绝访问
27模式初始化失败
28不报告
29加密没有完成
30参数不正确
31系统hidvol头reenc模式错误
32非系统电子海图不完全到位
33用户中止

注:Fat32格式化的磁盘内,fileUrl参数文件大小不能超过4G。

 类似资料: