一段调用advapi32.dll中MD5函数的BCB代码

6 篇文章 0 订阅
#ifndef TOOL_BOX
#define TOOL_BOX

extern "C"{
/* Data structure for MD5 (Message-Digest) computation */
typedef struct {
    unsigned long i[2]; /* number of _bits_ handled mod 2^64 */
    unsigned long buf[4]; /* scratch buffer */
    unsigned char in[64]; /* input buffer */
    unsigned char digest[16]; /* actual digest after MD5Final call */
} MD5_CTX;

__declspec(dllimport)  void __stdcall MD5Init(MD5_CTX *);
__declspec(dllimport)  void __stdcall MD5Update(MD5_CTX *, const unsigned char *, unsigned int);
__declspec(dllimport)  void __stdcall MD5Final(MD5_CTX *);


const char* MD5SUM(const char* pbuf, int len);

}
#endif

//-------------------------------------------------

#include "toolbox.h"
#pragma comment(lib,"advapi32.lib")

const char* MD5SUM(const char* pbuf, int len)
{
 MD5_CTX ctx;
 MD5Init(&ctx);
 MD5Update(&ctx,pbuf,len);
 MD5Final(&ctx);
 static char  ASC[32];
 int    i;

 for (i = 0; i < 16; i++)
 {
  ASC[i * 2] = "0123456789ABCDEF"[ctx.digest[i] >> 4];
  ASC[i * 2 + 1] = "0123456789ABCDEF"[ctx.digest[i] & 0x0F];
 }
 ASC[i * 2] = '\0';

 return ASC;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值