2 * rcracki_mt is a multithreaded implementation and fork of the original
\r
5 * Copyright (C) Zhu Shuanglei <shuanglei@hotmail.com>
\r
6 * Copyright Martin Westergaard Jørgensen <martinwj2005@gmail.com>
\r
7 * Copyright 2009, 2010 Daniël Niggebrugge <niggebrugge@fox-it.com>
\r
8 * Copyright 2009, 2010 James Nobis <frt@quelrod.net>
\r
10 * This file is part of rcracki_mt.
\r
12 * rcracki_mt is free software: you can redistribute it and/or modify
\r
13 * it under the terms of the GNU General Public License as published by
\r
14 * the Free Software Foundation, either version 2 of the License, or
\r
15 * (at your option) any later version.
\r
17 * rcracki_mt is distributed in the hope that it will be useful,
\r
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
20 * GNU General Public License for more details.
\r
22 * You should have received a copy of the GNU General Public License
\r
23 * along with rcracki_mt. If not, see <http://www.gnu.org/licenses/>.
\r
26 #if defined(_WIN32) && !defined(__GNUC__)
\r
27 #pragma warning(disable : 4786 4267 4018)
\r
30 #include "HashSet.h"
\r
32 CHashSet::CHashSet()
\r
36 CHashSet::~CHashSet()
\r
40 void CHashSet::AddHash(string sHash)
\r
42 if (sHash == "aad3b435b51404ee")
\r
46 for (i = 0; i < m_vHash.size(); i++)
\r
48 if (m_vHash[i] == sHash)
\r
52 //printf("debug: adding hash %s\n", sHash.c_str());
\r
54 m_vHash.push_back(sHash);
\r
55 m_vFound.push_back(false);
\r
56 m_vPlain.push_back("");
\r
57 m_vBinary.push_back("");
\r
60 string CHashSet::GetHashInfo(int i)
\r
68 string buffer = m_vHash[i] + ":" + found + ":" + m_vPlain[i] + ":" + m_vBinary[i];
\r
73 bool CHashSet::AnyhashLeft()
\r
76 for (i = 0; i < m_vHash.size(); i++)
\r
85 bool CHashSet::AnyHashLeftWithLen(int nLen)
\r
88 for (i = 0; i < m_vHash.size(); i++)
\r
91 if (m_vHash[i].size() == (unsigned long)nLen * 2)
\r
98 void CHashSet::GetLeftHashWithLen(vector<string>& vHash, int nLen)
\r
103 for (i = 0; i < m_vHash.size(); i++)
\r
106 if (m_vHash[i].size() == (unsigned long)nLen * 2)
\r
107 vHash.push_back(m_vHash[i]);
\r
111 void CHashSet::AddHashInfo(string sHash, bool found, string sPlain, string sBinary)
\r
114 for (i = 0; i < m_vHash.size(); i++)
\r
116 if (m_vHash[i] == sHash)
\r
120 m_vHash.push_back(sHash);
\r
121 m_vFound.push_back(found);
\r
122 m_vPlain.push_back(sPlain);
\r
123 m_vBinary.push_back(sBinary);
\r
126 void CHashSet::SetPlain(string sHash, string sPlain, string sBinary)
\r
129 for (i = 0; i < m_vHash.size(); i++)
\r
131 if (m_vHash[i] == sHash)
\r
133 m_vFound[i] = true;
\r
134 m_vPlain[i] = sPlain;
\r
135 m_vBinary[i] = sBinary;
\r
141 bool CHashSet::GetPlain(string sHash, string& sPlain, string& sBinary)
\r
143 if (sHash == "aad3b435b51404ee")
\r
151 for (i = 0; i < m_vHash.size(); i++)
\r
153 if (m_vHash[i] == sHash)
\r
157 sPlain = m_vPlain[i];
\r
158 sBinary = m_vBinary[i];
\r
167 int CHashSet::GetStatHashFound()
\r
169 int nHashFound = 0;
\r
171 for (i = 0; i < m_vHash.size(); i++)
\r
180 int CHashSet::GetStatHashTotal()
\r
182 return (int) m_vHash.size();
\r