📄 md5.cpp
字号:
// MD5.cpp : 定义 DLL 应用程序的入口点。
//
#include "stdafx.h"
#include "md5.h"
#include "CMD5.h"
//--------------------------------------------------------------------------------
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
//--------------------------------------------------------------------------------
//
// 以下为此动态库的 4 个导出函数
//
//--------------------------------------------------------------------------------
// MD5 计算初始化函数,返回CMD5类指针,供后续调用使用.
// 每次调用这个函数时,都会创建一个 CMD5 类,所以可以同时生成多个 MD5 计算的线程.
MD5_API void* MD5Init ( void )
{
CMD5* md5=new CMD5();
return md5;
}
//--------------------------------------------------------------------------------
// 当数据量大时,循环调用此函数传递后续数据,直到将所有数据计算完
// 如果数据量小,可一次提交计算,无需循环
// md5 : 调用MD5Init 时得到的 CMD5 指针.
// input : 输入数据缓冲区指针.
// inputLen : 缓冲区数据长度,以字节为单位
MD5_API void MD5Update ( void* md5,unsigned char *input,DWORD inputLen )
{
((CMD5*)md5)->Update(input,inputLen);
}
//--------------------------------------------------------------------------------
// 取计算结果,同时销毁 相应的 CMD5 类
// md5 : 调用MD5Init 时得到的 CMD5 指针.
// digest : 16字节的缓冲区指针,用于接收末转换成字符串的16进制MD5值
// md5str : 至少33字节的缓冲区指针,用于接收 MD5 值字符串
// digest 与 md5str 可选择提交,如果为空,则跳过复制,亦可同时提交来
// 得到16进制 MD5 值和字符串 MD5 值
MD5_API void MD5Final ( void* md5,char* digest,char* md5str )
{
((CMD5*)md5)->Final();
if( digest )
memcpy( digest,((CMD5*)md5)->digest,16 );
if( md5str )
strcpy( md5str,((CMD5*)md5)->md5str );
delete ((CMD5*)md5);
}
//--------------------------------------------------------------------------------
// 此函数用于计算单一字符串或缓冲区序列,其中允许有0值字节
// 调用此函数之前无须调用以上3个函数,为一次性计算使用.
// input : 缓冲区首址
// len : 缓冲区长度,以字节为单位
// digest : 16字节的缓冲区指针,用于接收末转换成字符串的16进制MD5值
// md5str : 至少33字节的缓冲区指针,用于接收 MD5 值字符串
// digest 与 md5str 可选择提交,如果为空,则跳过复制,亦可同时提交来
// 得到16进制 MD5 值和字符串 MD5 值
MD5_API void MD5String( unsigned char *input,DWORD len,char* digest,char* md5str )
{
CMD5 md5;
md5.Update(input,len);
md5.Final();
if( digest )
memcpy( digest,md5.digest,16 );
if( md5str )
strcpy( md5str,md5.md5str );
}
//--------------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -