CryptDestroyKey:释放指定的密钥。 (3) 加密函数 CryptEncrpt:使用指定的密钥对数据进行加密。 CryptDecrpt:使用指定的密钥对数据进行解密。 (4) 哈希函数 CryptCreateHash:创建一个空的 HASH对象。 CryptGetHashParam:获取指定的 HASH对象的属性。 CryptSetHashParam:设置指定的 HASH对象的属性。 CryptHashSessionKey:计算一个会话的 HASH 值,并将结果包括在指定的 HASH 对象中。 CryptHashData:计算一段数据的 HASH值,并将结果包括在指定的 HASH对象中。 CryptSignHash:对 HASH对象进行数字签名。 CryptVerifySignature:验证 HASH对象的数字签名。 CryptDestroyHash:释放指定的 HASH对象。 以下的 Delphi 程序介绍如何使用 CryptAPI 来加解密文件,同时介绍 CryptAPI 来计算 HASH值。程序的代码参见光盘目录\ch12\CryptFile\。 unit U_CryptFile; interface uses windows,Sysutils,wcrypt2; CONST C_IN_BUFFER_SIZE=2048; C_OUT_BUFFER_SIZE= C_IN_BUFFER_SIZE+64; function Encrypt_File(_source,_dest,_pass:string):integer; function Decrypt_File(_source,_dest,_pass:string):integer; function MD5Hash(_data:string):string; implementation function Encrypt_File(_source,_dest,_pass:string):integer; var hSfile,hDfile:THandle; Buffer:Array[1..C_OUT_BUFFER_SIZE] of Byte; done:Boolean; hProvider:HCRYPTPROV; hKey:HCRYPTKEY; hHash:HCRYPTHASH; bytecount,writecount:DWORD; begin {创建 Provider,函数的参数 pszContainer 和} {pszProvider设为 NIL,表示使用系统默认的 CSP} CryptAcquireContext(@hProvider,nil,nil,PROV_RSA_FULL,0); {/打开输入和输出文件} hSfile:=CreateFile(Pchar(_source),GENERIC_READ,FILE_SHARE_READ,Nil,
- 粉丝: 30
- 资源: 4180
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助