Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Generator hesla - Delphi

A ked ta zaujima jak taka moja "kravina" vypada v C, tak takto (toto sa vola z nekonecnej slucky az kym nevrati false - dlzka dosiahla maximum, typicky by to znamenalo ze ten kto odstartoval program uz nezije :-D)

const char strBruteCharset[] = "abcdefghijklmnopqrstuvwxyz";

// bruteforce character set length (without terminating null)
#define BRUTE_CHARSET_LEN  ((sizeof(strBruteCharset)-1)/sizeof(strBruteCharset[0]))


BOOL CreateNextPass(int *piPassLen, int *piPass, char *strPass)
{
	int i;

	for(i = (*piPassLen)-1; i >= 0; i--)
	{
		if(++piPass[i] < BRUTE_CHARSET_LEN)
		{
			strPass[i] = strBruteCharset[piPass[i]];
			break;
		}
		else
		{
			piPass[i] = 0;
			strPass[i] = strBruteCharset[0];
		}
	}

	if(i<0)
	{
		if((*piPassLen) >= MAX_PASS_LEN)
			return FALSE;

		(*piPassLen)++;
		for(i=0; i<(*piPassLen); i++)
		{
			piPass[i] = 0;
			strPass[i] = strBruteCharset[0];
		}
		strPass[i] = '\0';
	}

	return TRUE;
}
BTW. je to silne optimalizovane na rychlost, a na fakt aby charset mohol byt cokolvek a akokolvek usporiadany. Da sa to este dost zjednodusit, za tym if(i<0) nemusi byt for cyklus, stacilo pridat na koniec jeden znak a zakoncovaciu nulu. A keby som dal namiesto break return, tak sa ani nemuselo testovat if(i<0). Do delphi si to prepis sam :)

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny