API函数实现MD5数据校验

易语言 2020-08-14 16:04:40

API函数实现MD5数据校验

.如果真 (是否为调试版 ())
输出调试文本 (#原)
返回 (假)
.如果真结束
字节集 = 读入文件 (取运行目录 () + “\” + 取执行文件名 ())
位置 = 寻找字节集 (字节集, #加密原, )
.判断开始 (加解密_ (到文本 (#加密原)) = #原) ' 判断是否为首次运行
.如果 (信息框_ (0, #首次运行提示, #异编, #确认取消钮 + #询问图标) = 2) ' 2为第2个按钮
结束 ()
.否则
置随机数种子 ()
字节集 = 处理本身 (字节集)
.判断开始 (字节集 = { })
信息框_ (0, #编译失败0, #异编, #错误图标)
.判断 (位置 = -1)
信息框_ (0, #编译失败1 + 到文本 (#加密原), #异编, #错误图标)
.判断 (寻找字节集 (字节集, 到字节集 (#加密原), 位置 + 1) ≠ -1)
信息框_ (0, #编译失败2 + 到文本 (#加密原), #异编, #错误图标)
.默认
MD5 = 取数据摘要_ (字节集)
.如果 (MD5 = “”)
信息框_ (0, #编译失败3, #异编, #错误图标)
.否则
.循环判断首 ()
新数据 = 加解密_ (MD5 + 取随机字符 ())
.循环判断尾 (寻找字节集 (字节集, 到字节集 (新数据), ) ≠ -1)
字节集 = 字节集替换 (字节集, 位置, 取字节集长度 (#加密原), 到字节集 (新数据))
.如果 (写到文件 (取运行目录 () + “\” + #异编 + “_” + 取执行文件名 (), 字节集))
信息框_ (0, #编译成功, #异编 + “_” + 取执行文件名 (), #信息图标)
.否则
信息框_ (0, #编译失败4, #异编, #错误图标)

.如果结束

.如果结束

.判断结束

.如果结束
退出进程_ (取自进程ID_ ())
.默认
MD5 = 加解密_ (到文本 (取字节集中间 (字节集, 位置, 32)))
字节集 = 字节集替换 (字节集, 位置, 取字节集长度 (#加密原), 取空白字节集 (取字节集长度 (#加密原)))
新数据 = 取数据摘要_ (字节集)
.如果真 (到大写 (MD5) = 到大写 (新数据))
返回 (假)