Portál AbcLinuxu, 14. července 2025 14:04
Pokud vám jde o generování těch kombinací, tak pro inspiraci můžete použít tohle:
void find(const char* prefix, const unsigned N) { unsigned prefix_len = strlen(prefix); unsigned char buff[hash_len+1]; unsigned char pw[maxN]; unsigned pwi[maxN]; unsigned j; for (j=0; j<N; j++) { pwi[j] = 0; pw[j] = alpha[pwi[j]]; } memcpy(pw, prefix, prefix_len); while (true) { ALG(pw, N, buff); #ifdef DEBUG for (j=0; j<N; j++) putchar(pw[j]); putchar(' '); for (j=0; j<hash_len; j++) printf("%02x", buff[j]); putchar('\n'); #endif if (!memcmp(hash, buff, hash_len)) { for (j=0; j<N; j++) putchar(pw[j]); putchar('\n'); exit(0); } j = prefix_len; while (j<N) { if (++pwi[j] < alpha_len) { pw[j] = alpha[pwi[j]]; break; } pwi[j] = 0; pw[j] = alpha[pwi[j]]; j++; } if (j == N) break; } }
man gzip
man bzip2
(mám spoustu času :))
dist/bin/sandbox.sh --length 4 --prefix %%% --suffix @@@ --no-repeat abcdeABCDEbude generovat hesla dlzky 10 znakov, pricom prve tri znaky budu %%%, posledne tri znaky budu @@@ a styri znaky medzi tym budu rozne kombinacie znakov a-eA-E, pricom dve po sebe iduce sa nebudu opakovat. Len pre zaujimavost: je ich 7290, vysledny subor ma 80190 bajtov, defaultna i najlepsia gzip kompresia je 80%, bzip2 kompresia je takmer 92%.
5) ..., pismena, z ktorych sa ma generovat, mozno zadat (pozri nizsie), ...
Nic není zle, není to sice přesně podle zadání, ale funkční to je a tvoří to pomalu skoro to co bylo žádáno :).
Mně jen připadlo, že to mělo znít jako: lze to lehce spočítat takto….
Ale na to by nestačila ani Hlubina Myšlení, možná země, jen jestli to myši dovolí. :)
./genpas -small -big 4 XYZ > smazVygeneruje soubor smaz, kde to bude začínat na libovolné velké písmeno + 3 malá písmena + XYZ
./genpas absd SDK 4 kuk > smazVygeneruje soubor smaz, kde to bude začínat na [SDK] + 3×[absd] + kuk
chmod +x genpas
, spustit…./genpas -small -big 2 z | tail -n 1 ZzzPozri priklady v povodnom dotaze. Negeneruje to hesla dlzky od-do, iba jednej dlzky. Ja len ze si tak rypal, ze moj program nerobi presne to, co bolo v zadani.
¡Neopakují! :)Odporucam este raz pozorne si pozriet priklady v poziadavke 2; posledne pismeno prefixu nema byt rovnake ako prve pismeno jadra, a posledne pismeno jadra nema byt rovnake ako prve pismeno suffixu, pricom porovnanie je case-insensitive.
První písmeno je ze sady velkých.
Druhé písmeno je ze sady malých.
A třetí bylo zadáno v uvedeném příkaze jako pevný dodatek
2)nemají se opakovat stejné zanky těsně za sebou (např.: Aabc§-' Abbc§-'nebo Abcc§-')Ten prvy priklad to ukazuje, ze sa nema opakovat rovnaky (case insensitive) znak na zaciatku generovaneho jadra taky, aky bol prefixovy znak. Ak by to bolo tak, ako tvrdis, tak zadanie splna uz moja implementacia, a neviem, preco si sa vobec unuval.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.