2 RainbowCrack - a general propose implementation of Philippe Oechslin's faster time-memory trade-off technique.
4 Copyright (C) Zhu Shuanglei <shuanglei@hotmail.com>
8 #pragma warning(disable : 4786)
11 #include "HashRoutine.h"
12 #include "HashAlgorithm.h"
14 //////////////////////////////////////////////////////////////////////
16 CHashRoutine::CHashRoutine()
18 // Notice: MIN_HASH_LEN <= nHashLen <= MAX_HASH_LEN
20 AddHashRoutine("lm", HashLM, 8);
21 AddHashRoutine("md5", HashMD5, 16);
22 AddHashRoutine("sha1", HashSHA1, 20);
23 AddHashRoutine("ntlm", HashNTLM, 16);
26 CHashRoutine::~CHashRoutine()
30 void CHashRoutine::AddHashRoutine(string sHashRoutineName, HASHROUTINE pHashRoutine, int nHashLen)
32 vHashRoutineName.push_back(sHashRoutineName);
33 vHashRoutine.push_back(pHashRoutine);
34 vHashLen.push_back(nHashLen);
37 string CHashRoutine::GetAllHashRoutineName()
41 for (i = 0; i < vHashRoutineName.size(); i++)
42 sRet += vHashRoutineName[i] + " ";
47 void CHashRoutine::GetHashRoutine(string sHashRoutineName, HASHROUTINE& pHashRoutine, int& nHashLen)
50 for (i = 0; i < vHashRoutineName.size(); i++)
52 if (sHashRoutineName == vHashRoutineName[i])
54 pHashRoutine = vHashRoutine[i];
55 nHashLen = vHashLen[i];