程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> 關於VC++ >> 在WTL中使用MD5加密法

在WTL中使用MD5加密法

編輯:關於VC++

不記得在哪個地方得到了一個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)http://www.vckbase.com/tools/listtools.asp?tclsid=111

2)http://www.microsoft.com/downloads/details.aspx?familyid=128e26ee-2112-4cf7-b28e-7727d9a1f288&displaylang=en

3)http://www.copathway.com/vchelp/zsrc/wtlm.asp?type_id=70&class_id=1&cata_id=3&article_id=374

這樣當你啟動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<atlmisc.h>,這個文件,好讓它支持WTL的CString 。再次,要把類庫裡的ASSERT(非用不可就改為ATLASSERT吧)、AfxIsValidAddress、等WTL不支持的語句take out,你可以放心,這些都是調試用的語句(maybe,去掉了也無所謂,後來證明也是如此).然後,這個類庫裡有兩個函數,要使用到CFile的(如果你必須使用到FILE的話,那麼建議用standard c++自己封裝一個CFile ),也必須去掉。它們是 static CString GetMD5(CFile& File)、 static CString GetMD5(const CString& strFilePath);

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;
}

嗯,該說的差不多都說了,不懂、不了解、不明白的,就看源代碼吧!謝謝觀看~~

本文配套源碼

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved