Archive for the 'Code Snippet' Category
MD5 Wrapper class (for file)
最近忙的要死,VB终于要上线了,懒得写东西,随手发一个MD5的包装类,也许有朋友能用的到。
接口如下
CStringA MD5HashFile(CStringA strFilename);
这里没有做向宽字节转化的操作,如果有朋友需要,可以参考前些时候我贴的两个加密Wrapper类中的CMyUtility。
点击这里下载
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();
}