通过winapi获取MD5值
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值相关推荐
- [Windows]获取md5值最简单的工具
只需要在命令控制行输入"md5 文件名"就可以获取md5值, 简单易用并且保证md5值是准确的! 文件名可以是全路径,也可以是相对路径. 本人制作的简单工具,比如Windows自带 ...
- java 获取md5值报错_java获取文件的MD5值
package com.sichang.util; import java.io.File; import java.io.FileInputStream; import java.math.BigI ...
- Java如何获取MD5值
MD5,Message Digest Algorithm 5,是一种被广泛使用的信息摘要算法,可以将给定的任意长度数据通过一定的算法计算得出一个 128 位固定长度的散列值.如百科介绍,MD5 具有如 ...
- Python 获取md5值(hashlib)
常用方法 import hashlib# 创建MD5对象,可以直接传入要加密的数据 m = hashlib.md5('123456'.encode(encoding='utf-8')) # m = h ...
- shell 获取MD5值
字符串 password_do_md5=$(echo -n $password_do | md5sum | cut -d ' ' -f 1) 文件 md5sum a.txt
- Qt获取文件md5值
md5做为文件完整性验证的手段之一,以下介绍Qt获取文件md5值得方式: #include <QCryptographicHash> QString Download::getFileMD ...
- 文件 md5去重 linux,对比文件md5值实现去重文件
python检测文件的MD5值 MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2.MD3和MD4发展而来.MD5算法的使用不需要支付任何版 ...
- shell 获取字符串/文件的MD5值
获取字符串的MD5值: 字符串"hello"的MD5: $ echo -n 'hello'|md5sum|cut -d ' ' -f1 得到的MD5值: 5d41402abc4b2 ...
- JAVA 获取文件的MD5值大小以及常见的工具类
1 /** 2 * 获取文件的MD5值大小 3 * 4 * @param file 5 * 文件对象 6 * @return 7 */ 8 public static String getMD5(Fi ...
最新文章
- ubuntu搭建svn、git遇到的问题及解决办法
- 循环神经网络 递归神经网络_如何用递归神经网络预测空气污染
- 关于fatal error LNK1120: 1 unresolved externalsd而解决方法
- 机器学习:分类器介绍
- 广度优先搜索算法BFS讲解以及python 实现
- 实现小程序canvas拖拽功能
- 消息队列(3):RabbitMQ
- javascript-bom-浏览器对象模型
- posix自己搭建消息队列_蘑菇街消息系统上云实践
- [工具类]DataTable与泛型集合List互转
- Linux系统配置及服务管理_第03章用户管理
- [osg][原创]osg多屏幕显示,会出现透明需要设置的问题
- 【linux系统学习笔记】linux基本操作
- 外贸电子商务常见VISA信用卡或MasterCard等测试信用卡卡号一览
- 【准备篇】1.Simulink-F28335自动代码生成开发环境搭建
- Different lower_case_table_names settings for server (‘1‘) and data dictionary (‘0‘) 解决方案
- 纳米数据世界杯足球基础数据,接口文档,接口api调试,数据接口演示
- Android常用adb命令总结
- [转载] 深入 superviser
- QT报错:Gtk-Message:Failed to load module :gail“
热门文章
- 编译原理 第七章复习题 语法制导翻译和中间代码
- 在线支付系列【24】支付宝开放平台产品介绍
- js原生-获取屏幕宽度写响应式页面比较实用
- ask信号调制matlab,基于Matlab的ASK数字调制系统仿真
- python灰产_我用Python一键保存了半佛老师所有的骚气表情包
- MyBatis 缓存原理解析
- spring源码深度解析 第2版 pdf_吹爆!阿里爆款Spring源码高级笔记,原来看懂源码如此简单...
- 肺结节目标检测_基于改进Faster R-CNN的肺结节检测
- 【数据挖掘算法分享】机器学习平台——回归算法之随机森林
- PID控制参数整定(调节方法)原理+图示+MATLAB调试