| 子程序名 | 返回值类型 | 公开 | 备 注 | ||||
| 文件_取md5 | 文本型 | 计算文件的MD5,与“校验_取md5”不同的是,无需将整个文件一次性读入内存,可以避免大文件计算时无法分配内存的错误,适用于备份、程序更新等场景 | |||||
| 参数名 | 类 型 | 参考 | 可空 | 数组 | 备 注 | ||
| 文件路径 | 文本型 | 文件的路径 | |||||
| 变量名 | 类 型 | 静态 | 数组 | 备 注 | ||
| FileData | 文本型 | 读取文件时的缓冲区 | ||||
| BytesRead | 整数型 | 成功读取的字节数 | ||||
| md5 | 字节型 | "16" | md5 | |||
| len | 整数型 | 长度 | ||||
| md5Hex | 文本型 | 16进制形式的md5 | ||||
| FileSize | 长整数型 | 文件大小 | ||||
| Hfile | 整数型 | 文件句柄 | ||||
| HCSP | 整数型 | CSP句柄 | ||||
| Hhash | 整数型 | 哈希句柄 | ||||
| i | 整数型 | i | ||||
CryptAcquireContextA (HCSP, “”, “”, 1, 4026531840)
' 启动哈希流
CryptCreateHash (HCSP, 32771, 0, 0, Hhash)
' 创建文件句柄
Hfile = CreateFileA (文件路径, 2147483648, 1, 0, 3, 134217856, 0)
' 获取文件大小
GetFileSizeEx (Hfile, FileSize)
' 写入文件数据
循环判断首 ()
FileData = 取空白文本 (512)
ReadFile (Hfile, FileData, 512, BytesRead, 0)
CryptHashData (Hhash, FileData, BytesRead, 0)
FileSize = FileSize - BytesRead
循环判断尾 (FileSize > 0)CloseHandle (Hfile)
' 计算哈希值
len = 16
CryptGetHashParam (Hhash, 2, md5, len, 0)
CryptReleaseContext (HCSP, 0)
CryptDestroyHash (Hhash)
' 转换为十六进制
计次循环首 (16, i)
md5Hex = md5Hex + 取文本右边 (“0” + 取十六进制文本 (md5 [i]), 2)
计次循环尾 ()返回 (md5Hex)
| DLL命令名 | 返回值类型 | 公开 | 备 注 | |
| CryptAcquireContextA | 逻辑型 | |||
| DLL库文件名: | ||||
| advapi32.dll | ||||
| 在DLL库中对应命令名: | ||||
| CryptAcquireContextA | ||||
| 参数名 | 类 型 | 传址 | 数组 | 备 注 |
| phProv | 整数型 | |||
| pszContainer | 文本型 | |||
| pszProvider | 文本型 | |||
| dwProvType | 整数型 | |||
| dwFlags | 整数型 | |||
| DLL命令名 | 返回值类型 | 公开 | 备 注 | |
| CryptCreateHash | 逻辑型 | |||
| DLL库文件名: | ||||
| advapi32 | ||||
| 在DLL库中对应命令名: | ||||
| CryptCreateHash | ||||
| 参数名 | 类 型 | 传址 | 数组 | 备 注 |
| hProv | 整数型 | |||
| Algid | 整数型 | |||
| hKey | 整数型 | |||
| dwFlags | 整数型 | |||
| phHash | 整数型 | |||
| DLL命令名 | 返回值类型 | 公开 | 备 注 | |
| CreateFileA | 整数型 | |||
| DLL库文件名: | ||||
| kernel32.dll | ||||
| 在DLL库中对应命令名: | ||||
| CreateFileA | ||||
| 参数名 | 类 型 | 传址 | 数组 | 备 注 |
| lpFileName | 文本型 | |||
| dwDesiredAccess | 整数型 | |||
| dwShareMode | 整数型 | |||
| lpSecurityAttributes | 整数型 | |||
| dwCreationDisposition | 整数型 | |||
| dwFlagsAndAttributes | 整数型 | |||
| hTemplateFile | 整数型 | |||
| DLL命令名 | 返回值类型 | 公开 | 备 注 | |
| ReadFile | 逻辑型 | |||
| DLL库文件名: | ||||
| kernel32 | ||||
| 在DLL库中对应命令名: | ||||
| ReadFile | ||||
| 参数名 | 类 型 | 传址 | 数组 | 备 注 |
| hFile | 整数型 | |||
| lpBuffer | 文本型 | |||
| nNumberOfBytesToRead | 整数型 | |||
| lpNumberOfBytesRead | 整数型 | |||
| lpOverlapped | 整数型 | |||
| DLL命令名 | 返回值类型 | 公开 | 备 注 | |
| CryptHashData | 逻辑型 | |||
| DLL库文件名: | ||||
| advapi32 | ||||
| 在DLL库中对应命令名: | ||||
| CryptHashData | ||||
| 参数名 | 类 型 | 传址 | 数组 | 备 注 |
| hHash | 整数型 | |||
| a1 | 文本型 | |||
| dwDataLen | 整数型 | |||
| dwFlags | 整数型 | |||
| DLL命令名 | 返回值类型 | 公开 | 备 注 | |
| CryptGetHashParam | 逻辑型 | |||
| DLL库文件名: | ||||
| advapi32 | ||||
| 在DLL库中对应命令名: | ||||
| CryptGetHashParam | ||||
| 参数名 | 类 型 | 传址 | 数组 | 备 注 |
| hHash | 整数型 | |||
| dwParam | 整数型 | |||
| pbData | 字节型 | |||
| pdwDataLen | 整数型 | |||
| dwFlags | 整数型 | |||
| DLL命令名 | 返回值类型 | 公开 | 备 注 | |
| CloseHandle | 逻辑型 | |||
| DLL库文件名: | ||||
| Kernel32 | ||||
| 在DLL库中对应命令名: | ||||
| CloseHandle | ||||
| 参数名 | 类 型 | 传址 | 数组 | 备 注 |
| hObject | 整数型 | |||
| DLL命令名 | 返回值类型 | 公开 | 备 注 | |
| CryptReleaseContext | 逻辑型 | |||
| DLL库文件名: | ||||
| advapi32 | ||||
| 在DLL库中对应命令名: | ||||
| CryptReleaseContext | ||||
| 参数名 | 类 型 | 传址 | 数组 | 备 注 |
| hProv | 整数型 | |||
| dwFlags | 整数型 | |||
| DLL命令名 | 返回值类型 | 公开 | 备 注 | |
| CryptDestroyHash | 逻辑型 | |||
| DLL库文件名: | ||||
| advapi32 | ||||
| 在DLL库中对应命令名: | ||||
| CryptDestroyHash | ||||
| 参数名 | 类 型 | 传址 | 数组 | 备 注 |
| hHash | 整数型 | |||
| DLL命令名 | 返回值类型 | 公开 | 备 注 | |
| GetFileSizeEx | 整数型 | |||
| DLL库文件名: | ||||
| kernel32 | ||||
| 在DLL库中对应命令名: | ||||
| GetFileSizeEx | ||||
| 参数名 | 类 型 | 传址 | 数组 | 备 注 |
| hFile | 整数型 | |||
| lpFileSize | 长整数型 | |||
词条作者信息 使用例程
