type
pTMD5_CTX = ^TMD5_CTX;
TMD5_CTX = record
num:Array[0…1] of ULONG;
buf:Array[0…3] of ULONG;
input:Array[0…64-1] of Byte;
digest:Array[0…16-1] of Byte;
end;
TMD5Init = procedure(Ctx:Pointer);stdcall;
TMD5Update = procedure(Ctx:Pointer; lpBuf:Pointer; nLen:Integer);stdcall;
TMD5Final = procedure(Ctx:Pointer);stdcall;
var
g_IsMd5Load:Boolean;
g_MD5Init:TMD5Init = nil;
g_MD5Update:TMD5Update = nil;
g_MD5Final:TMD5Final = nil;

function WinMd5(str:AnsiString):AnsiString;
var
ctx:TMD5_CTX;
i:Integer;
begin
LodMd5;
Result:=‘’;
if g_IsMd5Load then begin
ZeroMemory(@ctx,sizeof(TMD5_CTX));
g_MD5Init(@ctx);
g_MD5Update(@ctx, @str[1], Length(str));
g_MD5Final(@ctx);
for i:=0 to 15 do begin
Result:=Result+lowercase(Format(‘%.2x’,[ctx.digest[i]]));
end;
end;
end

THANKS FOR
this is sign for MD5:

procedure LodMd5;
var
hMod:Cardinal;
begin
if not g_IsMd5Load then begin
hMod:=LoadLibrary(‘advapi32.dll’);
if hMod<>0 then begin
g_MD5Init:=GetProcAddress(hMod,‘MD5Init’);
g_MD5Update:=GetProcAddress(hMod,‘MD5Update’);
g_MD5Final:=GetProcAddress(hMod,‘MD5Final’);
if (@g_MD5Init<>nil) and (@g_MD5Update<>nil) and (@g_MD5Final<>nil) then begin
g_IsMd5Load:=True;
end;
end;
end;
end;

procedure LodMd5;
var
hMod:Cardinal;
begin
if not g_IsMd5Load then begin
hMod:=LoadLibrary(‘advapi32.dll’);
if hMod<>0 then begin
g_MD5Init:=GetProcAddress(hMod,‘MD5Init’);
g_MD5Update:=GetProcAddress(hMod,‘MD5Update’);
g_MD5Final:=GetProcAddress(hMod,‘MD5Final’);
if (@g_MD5Init<>nil) and (@g_MD5Update<>nil) and (@g_MD5Final<>nil) then begin
g_IsMd5Load:=True;
end;
end;
end;
end;

{{{7AE60F4F8BDA76E87ED4EC75E36784CA3B46474B4F6458A526A54BA33B9E354392349E3C45444B49B8DF2A3E5EF41AA22D9B3F9D3EAC2177EC65E129D270D17999FC0C7393F91A4E85CA001C69C5CBCF73ED6F}}}

通过winapi获取MD5值相关推荐

  1. [Windows]获取md5值最简单的工具

    只需要在命令控制行输入"md5 文件名"就可以获取md5值, 简单易用并且保证md5值是准确的! 文件名可以是全路径,也可以是相对路径. 本人制作的简单工具,比如Windows自带 ...

  2. java 获取md5值报错_java获取文件的MD5值

    package com.sichang.util; import java.io.File; import java.io.FileInputStream; import java.math.BigI ...

  3. Java如何获取MD5值

    MD5,Message Digest Algorithm 5,是一种被广泛使用的信息摘要算法,可以将给定的任意长度数据通过一定的算法计算得出一个 128 位固定长度的散列值.如百科介绍,MD5 具有如 ...

  4. Python 获取md5值(hashlib)

    常用方法 import hashlib# 创建MD5对象,可以直接传入要加密的数据 m = hashlib.md5('123456'.encode(encoding='utf-8')) # m = h ...

  5. shell 获取MD5值

    字符串 password_do_md5=$(echo -n $password_do | md5sum | cut -d ' ' -f 1) 文件 md5sum a.txt

  6. Qt获取文件md5值

    md5做为文件完整性验证的手段之一,以下介绍Qt获取文件md5值得方式: #include <QCryptographicHash> QString Download::getFileMD ...

  7. 文件 md5去重 linux,对比文件md5值实现去重文件

    python检测文件的MD5值 MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2.MD3和MD4发展而来.MD5算法的使用不需要支付任何版 ...

  8. shell 获取字符串/文件的MD5值

    获取字符串的MD5值: 字符串"hello"的MD5: $ echo -n 'hello'|md5sum|cut -d ' ' -f1 得到的MD5值: 5d41402abc4b2 ...

  9. JAVA 获取文件的MD5值大小以及常见的工具类

    1 /** 2 * 获取文件的MD5值大小 3 * 4 * @param file 5 * 文件对象 6 * @return 7 */ 8 public static String getMD5(Fi ...

最新文章

  1. ubuntu搭建svn、git遇到的问题及解决办法
  2. 循环神经网络 递归神经网络_如何用递归神经网络预测空气污染
  3. 关于fatal error LNK1120: 1 unresolved externalsd而解决方法
  4. 机器学习:分类器介绍
  5. 广度优先搜索算法BFS讲解以及python 实现
  6. 实现小程序canvas拖拽功能
  7. 消息队列(3):RabbitMQ
  8. javascript-bom-浏览器对象模型
  9. posix自己搭建消息队列_蘑菇街消息系统上云实践
  10. [工具类]DataTable与泛型集合List互转
  11. Linux系统配置及服务管理_第03章用户管理
  12. [osg][原创]osg多屏幕显示,会出现透明需要设置的问题
  13. 【linux系统学习笔记】linux基本操作
  14. 外贸电子商务常见VISA信用卡或MasterCard等测试信用卡卡号一览
  15. 【准备篇】1.Simulink-F28335自动代码生成开发环境搭建
  16. Different lower_case_table_names settings for server (‘1‘) and data dictionary (‘0‘) 解决方案
  17. 纳米数据世界杯足球基础数据,接口文档,接口api调试,数据接口演示
  18. Android常用adb命令总结
  19. [转载] 深入 superviser
  20. QT报错:Gtk-Message:Failed to load module :gail“

热门文章

  1. 编译原理 第七章复习题 语法制导翻译和中间代码
  2. 在线支付系列【24】支付宝开放平台产品介绍
  3. js原生-获取屏幕宽度写响应式页面比较实用
  4. ask信号调制matlab,基于Matlab的ASK数字调制系统仿真
  5. python灰产_我用Python一键保存了半佛老师所有的骚气表情包
  6. MyBatis 缓存原理解析
  7. spring源码深度解析 第2版 pdf_吹爆!阿里爆款Spring源码高级笔记,原来看懂源码如此简单...
  8. 肺结节目标检测_基于改进Faster R-CNN的肺结节检测
  9. 【数据挖掘算法分享】机器学习平台——回归算法之随机森林
  10. PID控制参数整定(调节方法)原理+图示+MATLAB调试