Delphi. Sintaxa. parole
Să sunt de acord că avem un alfabet de n caractere posibile, iar caracterele noastre k parola în lungime. Este necesar să se știe cât de multe opțiuni parola pot fi, în principiu, și în continuare a se vedea cât de multe vor fi variante parola de caractere non-recurente - uneori există acuzații că o parolă mai bună. Nu pot garanta pentru acuratețea terminologiei a fost prea leneș să caute :) doar pentru ei numesc astfel de parole, respectiv, „normale“ și „unic“.
Așa cum tocmai am fost de acord, denumit în mod obișnuit ca parolele de acces, care pot conține caractere recurente. Asta este, acesta este numărul total de combinații de lungime k, putem scoate din n elemente. Prea puternic în matematică nu va merge si uita-te la câteva exemple simple. Începem cum trebuie, încă de la început.
Exemplul 1: Avem elemente de „A“ și „B“. Câte combinații de lungime 1 le pot crea? Evident, doi. În treacăt, observăm pentru viitor, care este egal cu nk.
Exemplul 2: Avem elemente de "A", "B" și "C". Câte au combinații de 2 caractere? Să numărăm. Itera pe principiul „toată lumea cu toată lumea“. Get "AA", "AB", "AC", "BA", "BB", "BC", "SA", "CB", "CC", întreaga 9. ciudată coincidență - din nou nk :)
Atunci îți sugerez doar să ia acordat pentru că nk lor, pentru că modul în care este, se dovedesc a fi strict destul de mult timp. Cei interesați se pot referi la secțiunea Algebra „combinatorii“. Aceasta se numește plasare cu repetiții. Să considerăm un exemplu practic. Numărul de litere ale alfabetului 26. Noi facem tot felul de parole la 9 caractere. Ei au 269 = 5 429 503 678 976 bucăți. Un început :)
Să ne întoarcem la exemple. parole unice nu conțin repetarea de caractere, pentru că primul exemplu ne lasă amândoi. Din al doilea exemplu, ar trebui să ștergeți „AA“, „BB“ și „CC“, atunci există șase cazuri. În matematică se numește plasare. Numărul de plasamente (fără repetare) au fost calculate folosind formula n * (n-1) * (n-2) *. * (N-k + 1) = n! / (N-k)! (Aceasta este factorial, sper că toată lumea își amintește). Imediat vedem că, de exemplu, ne vom obține, respectiv, 2 și 6, care este bine. Din nou, același exemplu mai practic - au un 26 de data asta! / (26-9)! = 26! / 17! = 1 133 836 704 000 opțiuni. Chiar și fără „kurkulyatora“ de înțeles modul în care ne-am redus in jos gama de condiții posibile parole de caractere impuse de repetabilitate. Aceasta este întrebarea cu privire la utilizarea parolei „unic“ :)
Să trecem la lucruri practice. De exemplu, ia în considerare parole MS Office. Ele pot fi mult timp de până la 15 de caractere și să includă litere (nu numai în limba engleză, ci și localizarea limbilor), numere și caractere speciale ( "
Încercați să răspundă la cele mai interesante întrebare - pe măsură ce numărul de opțiuni depinde de dimensiunea alfabetului și lungimea parolei? Și că, în general, este mai important - pentru a crește dimensiunea alfabetului, sau de a folosi o lungime maximă parola? Formulele acestor relații, am primit deja, din motive de claritate, sunt desena acum un cuplu de imagini. Din nou, să ia 80 de caractere ale alfabetului și o parolă de 15 caractere.
Figura 1: Determinarea numărului de opțiuni „obișnuite“ cu privire la dimensiunea alfabetului și lungimea parolei.
Figura 2: Dependența de numărul de versiuni „unice“ de dimensiunea alfabetului și lungimea parolei.
Din păcate, „instrument de desen“ biți nu atinge valoarea maximă, dar există un model. În opinia mea, cifrele arată că o parolă minimă acceptabilă este de 10 caractere în lungime și 25 de caractere ale alfabetului folosit, și că numărul de cazuri mai dependente de dimensiunea alfabetului.
Deci, cât de mult timp computerul va trebui să rupă în documentul nostru? Să estimăm. vizitează în mod specific site-ul de mai multe utilitati pentru a „recupera parolele pierdute sau uitate“, dar informații despre viteza de căutare există în mod înțelept nu are ca rezultat :) Singurul lucru care a fost capabil să sape în rețea - o referire la faptul că unul dintre aceste programe, scrise în urmă cu câțiva ani, trece prin 85.000 de opțiuni în al doilea pe un Pentium III. Algoritmii de la aproape nimic sa schimbat în mod semnificativ. Să ne introducă un amendament la creșterea puterii de calcul, de exemplu, se înmulțește cu cinci. Pentru parola de 9 cifre pentru alfabetul de 26 de caractere obține aproximativ 145 de zile. Aceasta este parola normală. Pentru parolele de caractere non-recurente transformă o lună. Desigur, acestea sunt rasuzhdeniya cracare opțiuni brute force - cu privire la alte metode nu presupun să numere.