Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Siła hasła
kjiu
post
Post #1





Grupa: Zarejestrowani
Postów: 34
Pomógł: 0
Dołączył: 20.02.2009

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
RafaelX
post
Post #2





Grupa: Zarejestrowani
Postów: 144
Pomógł: 28
Dołączył: 2.01.2009

Ostrzeżenie: (0%)
-----


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

Ten post edytował RafaelX 17.04.2009, 19:59:23
Go to the top of the page
+Quote Post
Crozin
post
Post #3





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Kwestia wyrażenia regularnego sprawdzającego występowanie danej grupy znaków jak i długości samego hasła (najprostszy algorytm)
Go to the top of the page
+Quote Post
Spawnm
post
Post #4





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




a co myślicie o tym : klik (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
blooregard
post
Post #5


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




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? (IMG:http://forum.php.pl/style_emoticons/default/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_. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Skie
post
Post #6





Grupa: Zarejestrowani
Postów: 555
Pomógł: 84
Dołączył: 20.02.2008
Skąd: Małopolska

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
i1z2e3
post
Post #7





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 4.11.2009

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
john_doe
post
Post #8





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

Ostrzeżenie: (0%)
-----


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

Ten post edytował john_doe 4.11.2009, 08:48:43
Go to the top of the page
+Quote Post
Spirit86
post
Post #9





Grupa: Zarejestrowani
Postów: 607
Pomógł: 23
Dołączył: 8.09.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 07:50