Ten wpis poświęcę skryptowi, który mierzy siłę hasła w JavaScript. Do pomiaru użyję wyrażeń regularnych.
Zanim przejdę do kodu, trzeba określić kiedy hasło jest silne. Czy silne hasło to hasło zawierające 30 liter czy raczej takie które jest 10 znakowe i posiada małe/duże litery cyfry i znaki specjalne?
I tutaj z pomocą przychodzi matematyka. Weźmy pod uwagę hasło o długości 5.
Gdy hasło składa się z samych małych liter od a od z jego siła to 245 = 7962624
Gdy hasło składa się z małych i wielkich liter to jego siła wynosi 485 = 254803968
Gdy dodamy cyfry otrzymujemy 585 = 656356768
A gdy dodamy znaki specjalne to możemy otrzymać w zależności od kodowania 1275 w przypadku ASCII.
Wystarczy, że zwiększymy długość hasła o jeden znak, a jego złamanie jest o wiele trudniejsze(metoda bruteforce).
Przejdźmy teraz do kodu, będe potrzebował kilku wyrażeń regularnych:
var warianty = { cyfry: /\d/.test(pass), //sprawdza czy wystepuja cyfry male: /[a-z]/.test(pass), //sprawdza czy sa male litery duze: /[A-Z]/.test(pass), //sprawdza czy sa duze litery specjalne: /\W/.test(pass), //sprawdza czy sa znaki specjalne dlugosc: pass.length > 7 //sprawdza czy dlugosc hasla jest wieksza od 7 };
Na tych prostych testach oparty jest skrypt. Każdy test ma wartość 25% i w zależności od rezultatu odpowiednio koloruje box z wynikiem.
Miernik siły hasła jest przydatnym narzędziem, które może być łatwo napisane w JavaScript, by poinformować użytkownika o sile hasła, które wybrał, bądź na wymuszeniu wprowadzenia hasła o określonej sile.
Pozwoliłem sobie skopiować Twój kod i nie działa. Jak pisze się tego typu rzeczy, to trzeba napisać kroki od 1 od następnego.
Co dokładnie nie działa? Po to robiłem fiddle, aby kod był możliwy do uruchomienia w izolowanym środowisku.
nic nie działa. Wrzuciłeś prostą funkcję którą każdy student sam sobie napisze w kilka minut, a komuś słabo zorientowanemu taka forma jest kompletnie neiprzydatna. Zamiast sie napinac kim to nei jesteś wrzuć coś przydatnego, albo nei zawracaj głowy.
Skrypt można odpalić w izolowanym środowisku i działa, po to zrobiłem Fiddle, aby każdy mógł sobie go skopiować i zobaczyć, że działa. Jaka forma byłaby bardziej przydatna dla Ciebie? Co do propozycji to słucham bardzo chętnie coś zrobię. Co do „napinania”, wcale nie uważam, że tak robię, głowy też nie zawracam ponieważ wejście tutaj jest dobrowolne i nikt nikogo nie zmusza do tego. Pozdrawiam.
Wygląda to fajnie i z pewnością przydało by mi się to na zajęciach ale jest mały problem z odpaleniem. Html i CSS się zgrał ale nie potrafię przyłączyć Javy do html, czy mógłbyś mi pomoc ? Jak mniemam spinający się kolega u góry chyba ma ten sam problem bo liczył na gotowca.
A jaki masz dokładnie problem? Jak otworzysz konsole pojawiają się jakieś błędy? Zobacz sobie widok http://jsfiddle.net/HFMvX/102/?utm_source=website&utm_medium=embed&utm_campaign=HFMvX i pamiętaj, że skrypt wykorzystuje jQuery więc musisz dodać jQuery do strony.