TrueCrypt原理与系统开发.doc
文本预览下载声明
TrueCrypt原理与系统开发
/Study/Topic/776378
1、TrueCrypt Format
?一、概述????? TrueCrypt是唯一的一款支持Windows Vista/XP/2000/Linux开源的虚拟加密磁盘软件,能够创建和设置加密的虚拟磁盘镜像,虚拟磁盘可以与其它磁盘一样正常访问,内部所有文件 都会自动加密,需要通过密码来进行访问,加密和解密都是实时的。????? TrueCrypt主要分为两部分;一部分是TrueCrypt Format,用来创建加密卷,另外一部分是TrueCrypt Mount,用来加载和卸载虚拟磁盘到分区等。
第一部分、TrueCrypt Format创建加密卷????? 按照TrueCrypt Format创建加密卷的向导,一共会出现加密卷位置,加密算法、加密卷大小、加密卷密码、加密卷格式化等几个步骤,之后就会创建加密卷,创建完的加密卷就是制定的加密卷位置的那个文件了。
????? 因此我们知道TrueCrypt的核心就是创建加密卷函数了,该函数的作用就是接受上述的加密卷位置等几个参数,完成创建加密卷的过程,在TrueCrypt里的原型是
int
FormatVolume(
char *volumePath,
BOOL bDevice,
unsigned __int64 size,
unsigned __int64 hiddenVolHostSize,
Password *password,
int cipher,
int pkcs5,
BOOL quickFormat,
BOOL sparseFileSwitch,
int fileSystem,
int clusterSize,
HWND hwndDlg,
BOOL hiddenVol,
int *realClusterSize,
BOOL uac
); ?
????? 下面我们来看下每个参数具体的含义
?参数
?类型
?含义
?示例
?volumePath
?char *
?用户选择的加密卷文件
?C:\\1.txt
?bDevice
?BOOL
?是否是一个分区卷
?FALSE
?size
?unsigned __int64
?加密卷大小(以byte为单位)
?10*1024*1024
?hiddenVolHostSize
?unsigned __int64
?隐藏加密卷大小(以byte为单位)
?0
?password
?Password
?用户输入的密码
?123456
?cipher
?int
?默认加密的算法
?1
?pkcs5
?int
?哈希算法
?DEFAULT_HASH_ALGORITHM
?quickFormat
?BOOL
?是否是快速格式化
?FALSE
?sparseFileSwitch
?BOOL
??
?TRUE
?fileSystem
?int
?文件系统
?FILESYS_FAT
?clusterSize
?int
??
?0
?hwndDlg
?HWND
?传入的窗口句柄
?NULL
?hiddenVol
?BOOL
?是否是隐藏卷
?FALSE
?realClusterSize
?int
??
?512
?uac
?BOOL
??
?FALSE
????? 下面我们来看具体的实例
int
Format( char* szFile,
unsigned __int64 nsize,
char* szPassword,
HWND hwndDlg )
{
char szFileName[TC_MAX_PATH+1]; /* The file selected by the user */ char szDiskFile[TC_MAX_PATH+1]; /* Fully qualified name derived from szFileName */
BOOL bDevice = FALSE; /* Is this a partition volume ? */
unsigned __int64 nVolumeSize = 0; /* The volume size, in bytes. */
unsigned __int64 nHiddenVolHostSize = 0; /* Size of the hidden volume host, in bytes */
Password volumePassword; /* Users password */
int nVolumeEA = 1; /* Default
显示全部