VOID TestStringListContainsShouldFail( PVMDIR_STRING_LIST pStringList ) { ASSERT(!VmDirStringListContains(pStringList, GenerateString())); }
string RandomStringGenerator::Generate(int min, int max) { if(max<min) return ""; else return GenerateString(min + (rand() % (max - min))); }
int GenerateString(string pass, int start, int end, int index, int length, string cipher_text, string salt) { int match = 1; //base case // if counter reaches 0 if (index == length) { // signal end of the string pass[index] = '\0'; // if matches, print if (CheckMatch(pass, cipher_text, salt) == 0) { printf("Cracked! The password is: %s\n", pass); match = 0; } return match; } //recursive case else { // for (int asci = start; (asci <= end) && (end - asci + 1 >= length - index); asci++) for (int asci = start; asci < end && match == 1; asci++) { pass[index] = (char) asci; match = GenerateString(pass, start, end, index + 1, length, cipher_text, salt); } } return match; }
VOID TestStringListAddLayout( VOID ) { PSTR ppszStrings[5]; DWORD dwError = 0; DWORD i = 0; PVMDIR_STRING_LIST pStringList; dwError = VmDirStringListInitialize(&pStringList, 10); ASSERT(dwError == 0); for (i = 0; i < VMDIR_ARRAY_SIZE(ppszStrings); ++i) { ppszStrings[i] = GenerateString(); dwError = VmDirStringListAdd(pStringList, ppszStrings[i]); ASSERT(dwError == 0); } ASSERT(pStringList->dwCount == VMDIR_ARRAY_SIZE(ppszStrings)); for (i = 0; i < VMDIR_ARRAY_SIZE(ppszStrings); ++i) { ASSERT(pStringList->pStringList[i] == ppszStrings[i]); } VmDirStringListFree(pStringList); }
void Owner::Set() { m_entity->Data().SetVal(GenerateString(m_nextInstance)); if (m_entity->Data().GetVal().empty()) { m_entity->Checksum().SetNull(); } else { m_entity->Checksum() = Safir::Dob::Typesystem::Operations::GetTypeId(m_entity->Data()); } m_connection.SetAll(m_entity,Safir::Dob::Typesystem::InstanceId(m_nextInstance),m_handler); ++m_numUpdates; if (m_numUpdates %1000 == 0) { std::wcout << "Update " << m_numUpdates<<std::endl; } ++m_nextInstance; if (m_nextInstance >= m_myFirst + m_instancesPerNode) { m_nextInstance = m_myFirst; } }
string RandomStringGenerator::Generate(string pattern) { m_pattern = pattern; string res = GenerateString((int)m_pattern.size()); m_pattern = ""; return res; }
//-------------------------------------------------------------- //GenerateStringTest TEST(GenerateStringTest, LongStrings) { vector<Integer> vec_1, vec_2; Integer temp; string test; for(int i = 1; i <= 5; i++) { vec_1.push_back(-1); //CAUTION: remember to pass large integers as string. otherwise overflow occurs. temp = Integer("123456789123456789123456789"); vec_2.push_back(temp); test += "123456789123456789123456789."; } EXPECT_EQ("-1.-1.-1.-1.-1.", GenerateString(vec_1)); EXPECT_EQ(test, GenerateString(vec_2)); }
int GenerateStringOfLength(int length, string cipher_text, string salt) { // create temporary string of given length char temp_string [length]; printf("."); int match = 0; match = GenerateString(temp_string, 32, 127, 0, length, cipher_text, salt); return match; }
VOID TestStringListAdd( PVMDIR_STRING_LIST pStringList ) { DWORD dwError = 0; PCSTR pszString = GenerateString(); dwError = VmDirStringListAdd(pStringList, pszString); ASSERT(dwError == 0); ASSERT(VmDirStringListContains(pStringList, pszString)); }
VOID TestStringListRemoveShouldFail( PVMDIR_STRING_LIST pStringList ) { DWORD dwError = 0; PSTR pszString = GenerateString(); dwError = VmDirStringListRemove(pStringList, pszString); ASSERT(dwError == VMDIR_ERROR_NOT_FOUND); ASSERT(!VmDirStringListContains(pStringList, pszString)); }
VOID TestStringListRemoveShouldSucceed( PVMDIR_STRING_LIST pStringList ) { DWORD dwError = 0; PCSTR pszString = GenerateString(); DWORD dwCount = 0; VmDirStringListAdd(pStringList, pszString); ASSERT(dwError == 0); ASSERT(VmDirStringListContains(pStringList, pszString)); dwCount = pStringList->dwCount; dwError = VmDirStringListRemove(pStringList, pszString); ASSERT(dwError == 0); ASSERT(!VmDirStringListContains(pStringList, pszString)); ASSERT(dwCount == pStringList->dwCount + 1); }
string RandomStringGenerator::GenerateString(int length) { string result = ""; if (m_pattern.size() > 0) result = PatternDrivenAlgo(m_pattern); else if (MaxUpper == 0 && MaxLower == 0 && MaxNumeric == 0 && MaxSpecial == 0) result = SimpleGenerateAlgo(length); else result = GenerateAlgoWithLimits(length); for(unsigned int i=0; i<ExistingStrings.size(); i++) { if(ExistingStrings.at(i).find(result) != string::npos) return GenerateString(length); } AddExistingString(result); return result; }
int main() { int n, c; scanf("%d", &n); /* * Вы неверно определяли размер итоговой строчки, поэтому free падал с ошибкой. Убрав очистку памяти вы проблему не решили. */ c= (1 << (n + 1)) + 1; char *string; string = (char*)malloc(c); if(n == 0) { printf("a\n"); } else { GenerateString(n, string); printf("%s\n",string); } free(string); return 0; }
VOID TestStringListAddWithReallocation( PVMDIR_STRING_LIST pStringList ) { UINT i = 0; DWORD dwMaxSize = 0; DWORD dwError = 0; dwMaxSize = pStringList->dwSize + 5; for (i = pStringList->dwCount; i < dwMaxSize; ++i) { dwError = VmDirStringListAdd( pStringList, GenerateString()); ASSERT(dwError == 0); } ASSERT(pStringList->dwSize > pStringList->dwCount); ASSERT(pStringList->dwSize > dwMaxSize); ASSERT(pStringList->dwCount >= dwMaxSize); }
string RandomStringGenerator::Generate(int fixed) { return GenerateString(fixed); }