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 4267 4018)
21 void CHashSet::AddHash(string sHash)
23 if (sHash == "aad3b435b51404ee")
27 for (i = 0; i < m_vHash.size(); i++)
29 if (m_vHash[i] == sHash)
33 //printf("debug: adding hash %s\n", sHash.c_str());
35 m_vHash.push_back(sHash);
36 m_vFound.push_back(false);
37 m_vPlain.push_back("");
38 m_vBinary.push_back("");
41 string CHashSet::GetHashInfo(int i)
49 string buffer = m_vHash[i] + ":" + found + ":" + m_vPlain[i] + ":" + m_vBinary[i];
54 bool CHashSet::AnyhashLeft()
57 for (i = 0; i < m_vHash.size(); i++)
66 bool CHashSet::AnyHashLeftWithLen(int nLen)
69 for (i = 0; i < m_vHash.size(); i++)
72 if (m_vHash[i].size() == nLen * 2)
79 void CHashSet::GetLeftHashWithLen(vector<string>& vHash, int nLen)
84 for (i = 0; i < m_vHash.size(); i++)
87 if (m_vHash[i].size() == nLen * 2)
88 vHash.push_back(m_vHash[i]);
92 void CHashSet::AddHashInfo(string sHash, bool found, string sPlain, string sBinary)
95 for (i = 0; i < m_vHash.size(); i++)
97 if (m_vHash[i] == sHash)
101 m_vHash.push_back(sHash);
102 m_vFound.push_back(found);
103 m_vPlain.push_back(sPlain);
104 m_vBinary.push_back(sBinary);
107 void CHashSet::SetPlain(string sHash, string sPlain, string sBinary)
110 for (i = 0; i < m_vHash.size(); i++)
112 if (m_vHash[i] == sHash)
115 m_vPlain[i] = sPlain;
116 m_vBinary[i] = sBinary;
122 bool CHashSet::GetPlain(string sHash, string& sPlain, string& sBinary)
124 if (sHash == "aad3b435b51404ee")
132 for (i = 0; i < m_vHash.size(); i++)
134 if (m_vHash[i] == sHash)
138 sPlain = m_vPlain[i];
139 sBinary = m_vBinary[i];
148 int CHashSet::GetStatHashFound()
152 for (i = 0; i < m_vHash.size(); i++)
161 int CHashSet::GetStatHashTotal()
163 return m_vHash.size();