2010-01-15 15 views
7

He intentado con diferentes tipos de medidores de contraseñas o contraseñas de contraseñas, pero todos me dan resultados diferentes cuando pruebo la misma contraseña, porque cada uno implementa su propio algoritmo.Directrices para un medidor de seguridad de contraseñas (Comprobador de contraseñas) Diseño

¿Hay alguna norma o directriz oficial que me pueda seguir para construir mi propio medidor de seguridad de contraseñas?

Si no existiera un estándar oficial, ¿qué características debería comprobar un buen medidor de intensidad de la contraseña?

+2

Creo que la estandarización del algoritmo socavaría su fortaleza, ya que los malhechores tendrían un conjunto de reglas bien definido y estrechamente definido para aprovechar al intentar descifrar las contraseñas. Sería mucho más fácil hackear su contraseña si supiera que tiene 2-3 números, 5-6 letras y 1 de un pequeño conjunto de signos de puntuación, que si tuviera más dudas sobre sus criterios particulares. No es una respuesta, lo sé. – Jay

Respuesta

3

considerar lo siguiente:

  • Longitud
  • caso Mixta
  • No muchos caracteres repetidos
  • incluye letras, números y símbolos
  • no incluye la parte de el nombre de usuario
  • No es similar a las contraseñas anteriores
  • no hash a lo mismo que una contraseña débil
  • no es un paseo teclado
  • no está relacionado con el individuo
  • no termina con los sufijos comunes
  • no empieza por los prefijos comunes

de post on passwords, así como this post Ver Bruce Schneier.

+0

gran artículo de Schneier. es muy útil. Gracias. – RRUZ

1

Por lo que yo sé, no hay un estándar, ya que hay muchas definiciones de lo que debe ser una contraseña buena (es decir, fuerte).

algunas cosas a considerar:

  • Longitud - cuanto más largo mejor
  • caso Mixta
  • Incluye números, así como personajes
  • incluye caracteres numéricos no alfa
  • no es una palabra del diccionario
  • es una frase

y así sucesivamente

+0

"No incluye caracteres alfanuméricos"? ¿Acabas de decir en la línea anterior "Incluye números y también caracteres" que es alfanumérico? –

+0

Eso fue un error tipográfico. Corregido ahora. – ChrisF

0

También me gustaría añadir: no incluye la cadena usuario, o incluso una parte del nombre de usuario si es muy larga.

0

Voy a tirar otro criterio en el ring:

  • No "Teclado paseos"

Debido a que muchas personas esperan que los usuarios recuerden las contraseñas que son difíciles de recordar, recurren al teclado patrones para domar la locura. Eche en versiones cambiadas para una buena medida.

Ah, y nada en Twitter's forbidden password list, tampoco.

0

Hay una serie de pautas (google) que dan orientación sobre qué hace una contraseña segura, la mayoría de las cuales tiene sentido común. Al final del día, puede aplicar su propia política (o la política de la Compañía, si la tienen) para lo que es fuerte y lo que no, y su decisión probablemente estará influenciada por lo que está tratando de proteger.

Como dijo @jay, ¡no creo que la estandarización de tal cosa sea una práctica inteligente!

http://net.tutsplus.com/tutorials/javascript-ajax/build-a-simple-password-strength-checker/ Pensamiento

http://www.ibm.com/developerworks/lotus/library/ls-password_quality/index.html#N100F5

este sitio era particularmente bueno, ya que da una idea del algoritmo que están aplicando y cómo calculan la fuerza.

http://www.passwordmeter.com/

0

fuerza de una contraseña debe ser revisado en nombre de varios parámetros como la presencia de números y caracteres especiales, longitud de la contraseña, etc.

favor verifique este enlace:

http://tinytute.com/2014/06/03/animated-password-strength-checker-quick-easy/

El jQuery bloque de código:

$ (document) ready (function() {

$("#textBox").keyup(function(){ 

    var passWord = $("#textBox").val(); 
    var passLength = passWord.length; 
    var specialFlag = 0; 
    var numberFlag = 0; 
    var numberGenerator = 0; 
    var total = 0; 

    if(/^[a-zA-Z0-9- ]*$/.test(passWord) == false) { 

     specialFlag =20; 
    } 


    if(passWord.match(/[0-9]/)) { 

     numberFlag = 25; 
    } 

    if(passLength>4&&passLength<=6){ 
     numberGenerator =25; 
    }else if(passLength>=7&&passLength<=9){ 
     numberGenerator =35; 
    }else if(passLength>9){ 
     numberGenerator =55; 
    }else if(passLength>0&&passLength<=4){ 
     numberGenerator =15; 
    }else{ 
     numberGenerator =0; 
    } 

    total = numberGenerator + specialFlag + numberFlag; 
    if(total<30){ 
     $('#progressBar').css('background-color','#CCC'); 
    }else if(total<60&&total>=30){ 

     $('#progressBar').css('background-color','#FF6600'); 

    }else if(total>=60&&total<90){ 

     $('#progressBar').css('background-color','#FFCC00'); 

    }else if(total>=90){ 

     $('#progressBar').css('background-color','#0f0'); 

    } 
    $('#progressBar').css('width',total+'%'); 

}); 

});

Cuestiones relacionadas