|
楼主 |
发表于 2019-1-12 13:23:01
|
显示全部楼层
福建省漳州市
复制了。
.版本 2
.子程序 MD过程, 文本型, 公开
.参数 x, 字节集
.参数 种类, 整数型
.参数 长度, 整数型
.局部变量 hCryptProv, 整数型
.局部变量 hKey, 整数型
.局部变量 hHash, 整数型
.局部变量 pbBuffer, 字节集
.局部变量 cbHash, 整数型
.局部变量 rgbHash, 字节集
.局部变量 rgbDigits, 字节集
.局部变量 局_MD5, 字节集
.局部变量 b, 整数型
.局部变量 i, 整数型
.局部变量 len, 整数型
.如果 (CryptAcquireContextA (hCryptProv, “”, “”, 1, -268435456) = 0)
.如果真 (CryptAcquireContextA (hCryptProv, “”, “”, 1, 0) = 0)
返回 (“”)
.如果真结束
.否则
.如果 (CryptCreateHash (hCryptProv, 种类, hKey, 0, hHash) = 0)
CryptReleaseContext (hCryptProv, 0)
返回 (“”)
.否则
pbBuffer = x
len = 取字节集长度 (x)
.如果 (CryptHashData (hHash, pbBuffer, len, 0) = 0)
CryptDestroyHash (hHash)
CryptReleaseContext (hCryptProv, 0)
返回 (“”)
.否则
rgbHash = 取空白字节集 (长度)
cbHash = 长度
.如果 (CryptGetHashParam (hHash, 2, rgbHash, cbHash, 0) = 0)
CryptDestroyHash (hHash)
CryptReleaseContext (hCryptProv, 0)
返回 (“”)
.否则
rgbDigits = 到字节集 (“0123456789ABCDEF”)
局_MD5 = 取空白字节集 (长度 × 2)
.变量循环首 (0, cbHash - 1, 1, i)
b = rgbHash [i + 1]
局_MD5 [i × 2 + 1] = rgbDigits [右移 (b, 4) + 1]
局_MD5 [i × 2 + 2] = rgbDigits [位与 (b, 15) + 1]
.变量循环尾 ()
CryptDestroyHash (hHash)
CryptReleaseContext (hCryptProv, 0)
.如果结束
.如果结束
.如果结束
.如果结束
返回 (到文本 (局_MD5))
|
|