Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Siła hasła
Forum PHP.pl > Forum > Przedszkole
kjiu
Witam czy jest skrypt w php odnosnie siły hasła. ?


tak jak np https://www.google.com/accounts/NewAccount?service=mail&continue=http%3A%2F%2Fmail.google.com%2Fmail%2Fe-11-8fac6ac2093374b5046b378cc2558-ca46b5db2fd1dc9f6140122850bb4200ada71f7a&type=2
RafaelX
sprawdź długość hasła i czy czasem nie składa się z samych cyfr i to tyle chyba się dzieje w skrypcie googla
#EDIT
możesz tez zrobić czarna liste haseł i sprawdzac czy hasło wprowadzone przez użytkownika nie pokrywa sie z którymś z czarnej listy
Crozin
Kwestia wyrażenia regularnego sprawdzającego występowanie danej grupy znaków jak i długości samego hasła (najprostszy algorytm)
Spawnm
a co myślicie o tym : klik smile.gif
blooregard
Skłaniałbym się ku rozwiązaniu zaproponowanemu przez @Crozina.

F-cja, do której podałeś link, wymaga jakiegoś słownika, poza tym jest w stadium "experimental", no i dziwnie brzmi to:
Cytat
Rozpoczyna sprawdzanie podanego hasła

Rozumiem, że rozpoczyna, ale nie kończy? smile.gif

A tak, masz wolną rękę. Wystarczy, że sprawdzisz, czy hasło zawiera litery duże i małe, liczby i znaki specjalne, wtedy jest silne, jeśli same litery, np. małe, to jest słabe, wszystko pośrodku to hasła średnio silne (te możesz też rozgraniczyć na np. hasła zawierające określona ilość znaków z danej grupy i zrobić skalę np. od 1 do 10). Raz dobrze napisana f-cja do tego i masz gotowca do wszystkich swoich aplikacji, więc myślę, że warto posiedzieć i pokombinować.

Oczywiście Twoim największym przyjacielem w tym momencie będą wyrażenia regularne i f-cje z rodziny preg_. smile.gif
Skie
Wystarczy, że sprawdzisz długość hasła oraz występowanie cyfr i znaków specjalnych (ew. możesz też zwracać uwagę na wielkość liter).

Silne hasło to moim zdaniem już takie, które ma z 7 znaków, w tym 1 cyfrę i 1 znak specjalny.
i1z2e3
Problem w tym, że nie ma jednego podejścia do tematu siły hasła, bo sposobów na jego złamanie/uzyskanie/podglądnięcie jest wiele http://www.goodpassword.info/lamanie_hasel.php.
A do tego, autorzy skryptów sprawdzających siłę hasła, różnie do nich podchodzą i w efekcie każdy skrypt daje różne rezultaty. Tu możesz zobaczyć jak cztery różne skrypty, oceniają to samo hasło: http://www.goodpassword.info/sprawdzanie_sily_hasla.php.
john_doe
zobacz sobie coś takiego prostego w JS

  1. function passCounter()
  2. {
  3. counterDiv = document.getElementById('counter');
  4. var passLength = 8 - document.loginForm.newPass.value.length;
  5.  
  6. counterDiv.innerHTML = "<b style='font-size: 9px;'>" + passLength + "</b>";
  7.  
  8. for (var i = 1 ; i <= document.loginForm.newPass.value.length ; i++)
  9. {
  10. counterDiv.innerHTML += "<img src='images/passDot.JPG' />";
  11. }
  12.  
  13. if ( passLength <= 0 )
  14. {
  15. counterDiv.innerHTML = "<b style='color: #99cc33; font-size: 10px;'>Wpisane hasło ma odpowiednią długość!</b>";
  16. }
  17. }
  18.  
  19. function checkPassConfirmation()
  20. {
  21. var newPass = document.loginForm.newPass.value;
  22. var pasConfirm = document.loginForm.newPassConfirm.value;
  23.  
  24. if ( newPass != pasConfirm )
  25. {
  26. document.getElementById('confirmation').innerHTML = "<b style='color: red; font-size: 10px;'>Potwiedzenie nowego hasła jest inne!</b>";
  27. document.loginForm.mySub.disabled = true;
  28. }else {
  29. document.getElementById('confirmation').innerHTML = "<b style='color: #99cc33; font-size: 10px;'>Potwiedzenie OK!</b>";
  30. document.loginForm.mySub.disabled = false;
  31. }
  32. }


potem użyj sobie tego np

  1. <form name="loginForm" method="POST" action="chgPass.php" >
  2.  
  3. <input class="loginInput" type="password" name="newPass" maxlength="15" onKeyUp="passCounter();" />
  4. <div id="counter"></div>
  5.  
  6. <input class="loginInput" type="password" name="newPassConfirm" maxlength="15" onKeyUp="checkPassConfirmation();" />
  7. <div id="confirmation"></div>
  8. // tutaj jakiś sumbit
  9. </form>


zobacz
Spirit86
Cytat(john_doe @ 4.11.2009, 08:47:29 ) *
zobacz sobie coś takiego prostego w JS

  1. function passCounter()
  2. {
  3. counterDiv = document.getElementById('counter');
  4. var passLength = 8 - document.loginForm.newPass.value.length;
  5.  
  6. counterDiv.innerHTML = "<b style='font-size: 9px;'>" + passLength + "</b>";
  7.  
  8. for (var i = 1 ; i <= document.loginForm.newPass.value.length ; i++)
  9. {
  10. counterDiv.innerHTML += "<img src='images/passDot.JPG' />";
  11. }
  12.  
  13. if ( passLength <= 0 )
  14. {
  15. counterDiv.innerHTML = "<b style='color: #99cc33; font-size: 10px;'>Wpisane hasło ma odpowiednią długość!</b>";
  16. }
  17. }
  18.  
  19. function checkPassConfirmation()
  20. {
  21. var newPass = document.loginForm.newPass.value;
  22. var pasConfirm = document.loginForm.newPassConfirm.value;
  23.  
  24. if ( newPass != pasConfirm )
  25. {
  26. document.getElementById('confirmation').innerHTML = "<b style='color: red; font-size: 10px;'>Potwiedzenie nowego hasła jest inne!</b>";
  27. document.loginForm.mySub.disabled = true;
  28. }else {
  29. document.getElementById('confirmation').innerHTML = "<b style='color: #99cc33; font-size: 10px;'>Potwiedzenie OK!</b>";
  30. document.loginForm.mySub.disabled = false;
  31. }
  32. }


potem użyj sobie tego np

  1. <form name="loginForm" method="POST" action="chgPass.php" >
  2.  
  3. <input class="loginInput" type="password" name="newPass" maxlength="15" onKeyUp="passCounter();" />
  4. <div id="counter"></div>
  5.  
  6. <input class="loginInput" type="password" name="newPassConfirm" maxlength="15" onKeyUp="checkPassConfirmation();" />
  7. <div id="confirmation"></div>
  8. // tutaj jakiś sumbit
  9. </form>


zobacz


to nie jest sprawdzanie siły hasła...

1) sprawdzasz czy hasło nie jest takie samo jak login
2) długość hasła >6 znaków
3) hasła:
Kod
same litery proste
jak występują cyfry, litery hasło słabe
cyfry; duże, małe litery - średnie
cyfry; duże, małe litery, znaki specjalne - mocne
cyfry; duże, małe litery, znaki specjalne, długie (załóżmy >9 znaków) - silne

no i tak powinieneś kombinować

pozdro
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.