Archive for the 'Code Snippet' Category

MD5 Wrapper class (for file)

最近忙的要死,VB终于要上线了,懒得写东西,随手发一个MD5的包装类,也许有朋友能用的到。

接口如下

CStringA MD5HashFile(CStringA strFilename);

这里没有做向宽字节转化的操作,如果有朋友需要,可以参考前些时候我贴的两个加密Wrapper类中的CMyUtility。

点击这里下载

BlowFish算法封装

前面一个帖子一样,只是为了使用方便,把别人已经写好的BlowFish加密算法封装了一下。

点击这里下载(VS2005)

AES加密算法的简单封装

by Charry

AES加密算法每次对16字节的数据进行加密,而且加密后的密文通常是非ASCII字符,不易于保存和传输, 为了使用方便,我写了个包装类,使得使用AES加密非常简单,并且加密后的密文以它的16进制的形式出现,不再有乱码。

接口为:

BOOL Encrypt(const CString &key, const CString &in, CString &out);
BOOL Decrypt(const CString &key, const CString &in, CString &out);

由于AES是每16字节加密一下,所以如果被加密的明文的长度不是16的整数倍,我们需要在明文的后面补齐,比如用字符“0”。为了记录最后补了多少个“0”,可以把这个数字保存在最终的密文的后面,形如:

"DA7C8E7BF333EE0C612A8E211B139D4D{[]}10"

数字10前面的{[]}是为了查找方便。这个外包类只是我为了自己使用方便而写,其核心部分来自CodeProject:http://www.codeproject.com/cpp/aes.asp ,我只是简化了接口,并添加了UNICODE支持等细节。

点击这里下载代码

My Sniffer

最近写的一个Sniffer小程序,可以捕获当前用户上了哪些网。
(设置混杂模式部分参考网络文章,SocketInfo来自codeproject.com)

下载:http://www.mpfive.com/m/myapps/MySniffer.rar

使用方法:
1:拷贝下面的文件到你的工程下

HttpParser.cpp
SocketInfo.cpp
SocketInfo.h
define.h
SnifferManager.h
Sniffer.cpp
Sniffer.h
HttpParser.h
SnifferManager.cpp

2:在程序中 include SnifferManager.h
3:在你的程序中开启Sniffer的地方加入:

CSnifferManager *pSM = CSnifferManager::GetInstance();
pSM->StartSniffers();

4:程序关闭的地方加入:

this->ShowWindow(SW_HIDE);if(CSnifferManager::DestroyThreads()) 

       CSnifferManager::FreeInstance(); 

else 

{ 

       PostMessage(WM_CLOSE); 

       TRACE("// %s:%dn", __FILE__, __LINE__); 

       return; 

}

比如在OnClose中加入

void CMySnifferDlg::OnClose() 

{ 

       this->ShowWindow(SW_HIDE);       if(CSnifferManager::DestroyThreads()) 

              CSnifferManager::FreeInstance(); 

       else 

       { 

              PostMessage(WM_CLOSE); 

              TRACE("//%s:%dn", __FILE__, __LINE__); 

              return; 

       } 

CDialog::OnClose(); 

}