/* RainbowCrack - a general propose implementation of Philippe Oechslin's faster time-memory trade-off technique. Copyright (C) Zhu Shuanglei */ #ifndef _HASHSET_H #define _HASHSET_H #include "Public.h" class CHashSet { public: CHashSet(); virtual ~CHashSet(); private: vector m_vHash; vector m_vFound; vector m_vPlain; vector m_vBinary; public: void AddHash(string sHash); // lowercase, len % 2 == 0, MIN_HASH_LEN * 2 <= len <= MAX_HASH_LEN * 2 bool AnyhashLeft(); bool AnyHashLeftWithLen(int nLen); void GetLeftHashWithLen(vector& vHash, int nLen); void SetPlain(string sHash, string sPlain, string sBinary); bool GetPlain(string sHash, string& sPlain, string& sBinary); int GetStatHashFound(); int GetStatHashTotal(); }; #endif