通過advapi32.dll來實現MD5運算

來源:互聯網
上載者:User

#include <stdio.h><br />#include <conio.h><br />#include <windows.h></p><p>typedef struct {<br />ULONG i[2];/* number of _bits_ handled mod 2^64 */<br />ULONG buf[4];/* scratch buffer */<br />unsigned char in[64];/* input buffer */<br />unsigned char digest[16];/* actual digest after MD5Final call */<br />} MD5_CTX;</p><p>#define PROTO_LIST(list) list<br />typedef void (WINAPI* PMD5Init) PROTO_LIST((MD5_CTX *));<br />typedef void (WINAPI* PMD5Update) PROTO_LIST((MD5_CTX *, const unsigned char *, unsigned int));<br />typedef void (WINAPI* PMD5Final) PROTO_LIST((MD5_CTX *));</p><p>PMD5InitMD5Init= NULL;<br />PMD5UpdateMD5Update= NULL;<br />PMD5FinalMD5Final= NULL;</p><p>//功能:將數值轉換為對應的十六進位ascii碼,以便能夠列印顯示出來。<br />const char *Hex2ASC(const BYTE *Hex, int Len)<br />{<br />static char ASC[4096 * 2];</p><p>for (int i=0; i<Len; i++)<br />{<br />ASC[i * 2] = "0123456789ABCDEF"[Hex[i] >> 4];<br />ASC[i * 2 + 1] = "0123456789ABCDEF"[Hex[i] & 0x0F];<br />}<br />ASC[i * 2] = '/0';</p><p>return ASC;<br />}</p><p>int main()<br />{<br />unsigned char buf[] = "admin888";</p><p>MD5_CTX ctx;</p><p>HINSTANCE hDLL = LoadLibrary("advapi32.dll");<br />if ( hDLL != NULL )<br />{<br />MD5Init = (PMD5Init)GetProcAddress(hDLL, "MD5Init");<br />MD5Update = (PMD5Update)GetProcAddress(hDLL, "MD5Update");<br />MD5Final = (PMD5Final)GetProcAddress(hDLL, "MD5Final");</p><p>MD5Init(&ctx);<br />MD5Update(&ctx, buf, sizeof(buf)-1);<br />MD5Final(&ctx);</p><p>FreeLibrary(hDLL);</p><p>printf("/"%s/"的MD5值為:%s", buf,Hex2ASC(ctx.digest, 16));<br />}</p><p>getch();<br />return 0;<br />}<br />

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.