Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript] Funkcja sprawdzająca siłę hasła
gadeawzuki
post 23.03.2013, 14:38:13
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 1
Dołączył: 14.01.2009
Skąd: Kraków

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


Cześć. Pisząc kolejny projekt, chcę stworzyć często już spotykaną cieszynkę jaką jest siła hasła. Ze stworzeniem skryptu nie miałem problemu, zaraz go tutaj udostępnie. Chodzi mi bardziej o to jak premiować złożoność hasła, czy jest jakiś ogólny schemat i z czym to się w ogóle je. Może najpierw kod.

  1.  
  2. function usersPasswordStreinght(password){
  3. var table = password.split("");
  4. var numeric = 0;
  5. var bigString = 0;
  6. var smallString = 0;
  7. var symbols = -1;
  8. var passwordSafetyLevel = 0;
  9. var passwordSafetyLevelLength = 0;
  10. var passwordSafetyLevelNumeric = 0;
  11. var passwordSafetyLevelSmallString = 0;
  12. var passwordSafetyLevelBigString = 0;
  13. var passwordSafetyLevelSymbols = 0;
  14.  
  15. for(i=0;i<=table.length;i++){
  16. if(table[i] >= 0 && table[i] <= 9){
  17. numeric++;
  18. }else if(table[i] >= 'a' && table[i] <= 'z'){
  19. smallString++;
  20. }else if(table[i] >= 'A' && table[i] <= 'Z'){
  21. bigString++;
  22. }else{
  23. symbols++;
  24. }
  25.  
  26. if(table.length>3){
  27. passwordSafetyLevelLength = 4;
  28. }
  29. if(table.length>6){
  30. passwordSafetyLevelLength = 10;
  31. }
  32. if(numeric>1){
  33. passwordSafetyLevelNumeric = 19;
  34. }
  35. if(numeric>2){
  36. passwordSafetyLevelNumeric = 24;
  37. }
  38. if(smallString>2){
  39. passwordSafetyLevelSmallString = 11;
  40. }
  41. if(smallString>4){
  42. passwordSafetyLevelSmallString = 17;
  43. }
  44. if(bigString>0){
  45. passwordSafetyLevelBigString = 17;
  46. }
  47. if(bigString>2){
  48. passwordSafetyLevelBigString = 23;
  49. }
  50. if(symbols>0){
  51. passwordSafetyLevelSymbols = 21;
  52. }
  53. if(symbols>1){
  54. passwordSafetyLevelSymbols = 26;
  55. }
  56. passwordSafetyLevel = passwordSafetyLevelLength+passwordSafetyLevelNumeric+passwordSafetyLevelSmallStr
    ing+passwordSafetyLevelBigString+passwordSafetyLevelSymbols;
  57. document.getElementById("id").innerHTML=passwordSafetyLevel+ "%";
  58. }
  59. }
  60.  
  61. <input type="password" value="" onKeyUp="usersPasswordStreinght(this.value)" />
  62. <p id="demo"></p>
  63. <p id="id"></p>
  64.  
  65. </body>
  66. </html>


Może mój system niejest wyważony, ale działa sprawnie i szybko. Proszę o opinie i podpowiedzi jak zrobić by działało to tak jak należy.
Go to the top of the page
+Quote Post
ber32
post 23.03.2013, 15:38:02
Post #2





Grupa: Zarejestrowani
Postów: 332
Pomógł: 22
Dołączył: 6.07.2010

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


nie rozumiem tego napisz o co w tym chodzi

  1.  
  2. var symbols = -1;
  3.  
  4.  
  5. if(symbols>0){
  6. passwordSafetyLevelSymbols = 21;
  7. }
  8. if(symbols>1){
  9. passwordSafetyLevelSymbols = 26;
  10. }


--------------------
Go to the top of the page
+Quote Post
gadeawzuki
post 23.03.2013, 15:56:34
Post #3





Grupa: Zarejestrowani
Postów: 24
Pomógł: 1
Dołączył: 14.01.2009
Skąd: Kraków

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


Zmienna symbols jest -1 ponieważ gdy była 0, tak jak reszta to przy 1 znaku - symbolu w inpucie pokazywało mi, że są dwa. I nie potrafię tego wytłumaczyć. Kolejna część, czyli ta z ifami to, jeżeli jest więcej niż 0 symboli, to daje 21% złożoności hasła, jeżeli jest więcej niż 1 symboli, to daje 26% złożoności.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 25.04.2025 - 23:36