文件名称:加密函数-lte系统级模拟仿真器说明书
文件大小:2.67MB
文件格式:PDF
更新时间:2024-06-23 12:02:48
Delphi 网络 高级编程
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,