分类: C/C++
2008-08-01 16:58:31
不记得在哪个地方得到了一个MD5加密法的类,由于开发的原因要在WTL中使用MD5加密法,但是,这个类并不能直接的用在WTL中(In MFC it was an easy job ),所以我就修改了一下,并写出此文,以方便大家以后在WTL中使用MD5加密法。不过,小弟水平有限,有错漏地方,望各位哥姐包涵。
程序的运行界面如下:
First of all :在你的VC编译器中配置WTL(Copy 一段先 :-))
首先安装WTL AppWizard,现在最高版本应该是WTL7.0,直接运行setup脚本文件就可以了,这里给大家几个下载地址:
1)
2)
3)
这样当你启动VC6.0后,File/New时,在Project属性页就能看到添加了一项ATL/WTL AppWizard。你可以直接把WTL的库文件( 共16个.h文件)拷贝到vc的安装目录VC98/Include中,也可以放到你的工程文件夹中。
And : 修改合适WTL的MD5加密算法类
这个类有3个文件,MD5Checksum.h,MD5ChecksumDefines.h,MD5Checksum.cpp。不知道这个类库原来是不是专用在MFC中的,不过我在MFC中可以很直接的使用它,but,在WTL中,就不能直接使用了。我们必须动手小改一下它。首先,如果我们要把其用在WTL中的话,我们就应该在,MD5Checksum.h文件中加入#include
And : 你就可以使用MD5加密法了
我是这样的:
处理EDIT的EN_CHANGE事件:COMMAND_HANDLER(IDC_EDIT1, EN_CHANGE, OnChangeEdit1)
LRESULT OnChangeEdit1(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) { CString str_ReourceText; //get resource text HWND hWndResourceText = GetDlgItem(IDC_EDIT1); int int_ReourceText=::GetWindowTextLength(hWndResourceText); int_ReourceText ; LPTSTR lpStr = str_ReourceText.GetBufferSetLength(int_ReourceText); ::GetWindowText(hWndResourceText, lpStr, int_ReourceText); str_ReourceText.ReleaseBuffer(); str_ReourceText =CMD5Checksum::GetMD5((BYTE*)(const char*)str_ReourceText.GetBuffer(0),str_ReourceText.GetLength()); //set the result text SetDlgItemText(IDC_STATIC_RESUAL,str_ReourceText); return 0; }
嗯,该说的差不多都说了,不懂、不了解、不明白的,就看源代码吧!谢谢观看~~
下载本文示例代码