Pokud by sis s tím chtěl vyhrát, tak si můžeš "sílu" hesla spočítat. Já bych na to šel tak, že bych si přípustné znaky pro heslo rozdělil do čtyř skupin:
1. číslice - 10 znaků,
2. malá písmena - 26 znaků,
3. velká písmena - 26 znaků,
4. ostatní znaky - doporučuji úplně zakázat znaky s diakritikou, a z dalších povolit jen ty snadno dostupné na každé klávesnici, takže se nehodí třeba
# $ & a podobné, pro které je potřeba stisk víc kláves. Ale patří sem i mezera, s tou počítej každopádně.
Zadané heslo celé projdeš, zjistíš ze kterých skupin se v něm vyskytují znaky, a spočítáš počet kombinací podle délky hesla, například:
"
12345" - 10^5=
100000 kombinací, zlomení takového hesla je otázka několika sekund, takže to bude velmi slabé heslo, jestli se tomu dá vůbec říkat heslo!
"
ruzovakytka" - 26^11=
3670344486987776 kombinací, tohle už by trvalo rozlousknout pár hodin až dní, takže jde o středně bezpečné heslo, pro méně důležitou mailovou schránku přijatelně silné.
"
l4cD0OyyApX2hmNi6" - (10+26+26)^9=
47672401706823533450263330816 kombinací, to je dostatečně silné heslo i pro přístup k bankovnímu účtu, protože rozluštit ho by se současnými prostředky trvalo pěkných pár let i NSA.
Abys nemusel pracovat se strašně velkými čísly, můžeš si předpočítat pro jednotlivé skupiny koeficienty (inspiruj se u logaritmů) a ty pak jednoduše sečíst a vynásobit počtem znaků hesla, takže půjde o celkem jednoduchou matematickou operaci.
Tohle samozřejmě nezohledňuje známá hesla, na které se dá použít
slovníkový útok, ale na to bys potřeboval obrovskou databázi, takže se s tím v domácím úkolu zabývat nemusíš. Leda že bys testoval četnost bigramů a trigramů, to by se dalo zvládnout i v relativně malém prostoru
