資源簡介
VC6.0 C++ MD5驗證源碼文件和字符串驗證功能

代碼片段和文件信息
//?MD5.cpp:?implementation?of?the?MD5?class.
//
//////////////////////////////////////////////////////////////////////
/*#include?“stdafx.h“
#include?“MD5Check.h“
#include?“MD5.h“
#ifdef?_DEBUG
#undef?THIS_FILE
static?char?THIS_FILE[]=__FILE__;
#define?new?DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
//?Construction/Destruction
//////////////////////////////////////////////////////////////////////
MD5::MD5()
{
}
MD5::~MD5()
{
}*/
#include?“stdafx.h“
#include?“md5.h“
?
using?namespace?std;
?
/*?Constants?for?MD5Transform?routine.?*/
#define?S11?7
#define?S12?12
#define?S13?17
#define?S14?22
#define?S21?5
#define?S22?9
#define?S23?14
#define?S24?20
#define?S31?4
#define?S32?11
#define?S33?16
#define?S34?23
#define?S41?6
#define?S42?10
#define?S43?15
#define?S44?21
?
?
/*?F?G?H?and?I?are?basic?MD5?functions.
*/
#define?F(x?y?z)?(((x)?&?(y))?|?((~x)?&?(z)))
#define?G(x?y?z)?(((x)?&?(z))?|?((y)?&?(~z)))
#define?H(x?y?z)?((x)?^?(y)?^?(z))
#define?I(x?y?z)?((y)?^?((x)?|?(~z)))
?
/*?ROTATE_LEFT?rotates?x?left?n?bits.
*/
#define?ROTATE_LEFT(x?n)?(((x)?<(n))?|?((x)?>>?(32-(n))))
?
/*?FF?GG?HH?and?II?transformations?for?rounds?1?2?3?and?4.
Rotation?is?separate?from?addition?to?prevent?recomputation.
*/
#define?FF(a?b?c?d?x?s?ac)?{?\
????(a)?+=?F?((b)?(c)?(d))?+?(x)?+?ac;?\
????(a)?=?ROTATE_LEFT?((a)?(s));?\
????(a)?+=?(b);?\
}
#define?GG(a?b?c?d?x?s?ac)?{?\
????(a)?+=?G?((b)?(c)?(d))?+?(x)?+?ac;?\
????(a)?=?ROTATE_LEFT?((a)?(s));?\
????(a)?+=?(b);?\
}
#define?HH(a?b?c?d?x?s?ac)?{?\
????(a)?+=?H?((b)?(c)?(d))?+?(x)?+?ac;?\
????(a)?=?ROTATE_LEFT?((a)?(s));?\
????(a)?+=?(b);?\
}
#define?II(a?b?c?d?x?s?ac)?{?\
????(a)?+=?I?((b)?(c)?(d))?+?(x)?+?ac;?\
????(a)?=?ROTATE_LEFT?((a)?(s));?\
????(a)?+=?(b);?\
}
?
?
const?byte?MD5::PADDING[64]?=?{?0x80?};
const?char?MD5::HEX[16]?=?{
????‘0‘?‘1‘?‘2‘?‘3‘
????‘4‘?‘5‘?‘6‘?‘7‘
????‘8‘?‘9‘?‘a‘?‘b‘
????‘c‘?‘d‘?‘e‘?‘f‘
};
?
?
/*?Default?construct.?*/
MD5::MD5()?{
????reset();
}
?
/*?Construct?a?MD5?object?with?a?input?buffer.?*/
MD5::MD5(const?void*?input?size_t?length)?{
????reset();
????update(input?length);
}
?
/*?Construct?a?MD5?object?with?a?string.?*/
MD5::MD5(const?string&?str)?{
????reset();
????update(str);
}
?
/*?Construct?a?MD5?object?with?a?file.?*/
MD5::MD5(ifstream&?in)?{
????reset();
????update(in);
}
?
/*?Return?the?message-digest?*/
const?byte*?MD5::digest()?{
?
????if?(!_finished)?{
????????_finished?=?true;
????????final();
????}
????return?_digest;
}
?
/*?Reset?the?calculate?state?*/
void?MD5::reset()?{
?
????_finished?=?false;
????/*?reset?number?of?bits.?*/
????_count[0]?=?_count[1]?=?0;
????/*?Load?magic?initialization?constants.?*/
????_state[0]?=?0x67452301;
????_state[1]?=?0xefcdab89;
????_state[2]?=?0x98badcfe;
????_state[3]?=?0x10325476;
}
?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-11-01?19:40??MD5Check\
?????文件???????????0??2013-11-01?12:42??MD5Check\CMD5Checksum.h
?????目錄???????????0??2013-11-01?19:40??MD5Check\Debug\
?????文件???????28869??2013-11-01?10:43??MD5Check\Debug\MD5.obj
?????文件??????131174??2013-11-01?19:40??MD5Check\Debug\MD5Check.exe
?????文件??????244720??2013-11-01?19:40??MD5Check\Debug\MD5Check.ilk
?????文件???????13284??2013-11-01?17:43??MD5Check\Debug\MD5Check.obj
?????文件?????5496100??2013-10-31?22:32??MD5Check\Debug\MD5Check.pch
?????文件??????427008??2013-11-01?19:40??MD5Check\Debug\MD5Check.pdb
?????文件????????8372??2013-11-01?19:40??MD5Check\Debug\MD5Check.res
?????文件???????33523??2013-11-01?18:12??MD5Check\Debug\MD5CheckDlg.obj
?????文件???????30110??2013-11-01?17:00??MD5Check\Debug\MD5Checksum.obj
?????文件??????105920??2013-10-31?22:32??MD5Check\Debug\StdAfx.obj
?????文件??????254976??2013-11-01?19:40??MD5Check\Debug\vc60.idb
?????文件??????454656??2013-11-01?18:12??MD5Check\Debug\vc60.pdb
?????文件???????10733??2013-11-01?10:43??MD5Check\MD5.cpp
?????文件????????1890??2013-10-31?22:29??MD5Check\MD5.h
?????文件???????35156??2013-11-01?19:40??MD5Check\MD5Check.aps
?????文件?????????925??2013-11-01?19:40??MD5Check\MD5Check.clw
?????文件????????2058??2013-10-31?22:25??MD5Check\MD5Check.cpp
?????文件????????4493??2013-11-01?13:43??MD5Check\MD5Check.dsp
?????文件?????????524??2013-10-31?22:25??MD5Check\MD5Check.dsw
?????文件????????1346??2013-10-31?22:25??MD5Check\MD5Check.h
?????文件???????66560??2013-11-01?19:40??MD5Check\MD5Check.ncb
?????文件???????54784??2013-11-01?19:40??MD5Check\MD5Check.opt
?????文件?????????917??2013-11-01?19:40??MD5Check\MD5Check.plg
?????文件????????4883??2013-11-01?19:40??MD5Check\MD5Check.rc
?????文件????????4662??2013-11-01?18:11??MD5Check\MD5CheckDlg.cpp
?????文件????????1440??2013-11-01?17:39??MD5Check\MD5CheckDlg.h
?????文件???????17429??2013-11-01?12:23??MD5Check\MD5Checksum.cpp
?????文件????????2229??2013-11-01?17:00??MD5Check\MD5Checksum.h
............此處省略8個文件信息
評論
共有 條評論