Ahora puedes utilizar el medidor de seguridad de contraseñas de howsecureismypassword.net en tus propios sitios.
About
En lugar de limitarse a decir que una contraseña es «débil» o «fuerte», How Secure is My Password? permite a tus usuarios saber cuánto tardaría alguien en descifrar su contraseña. También comprueba las 10.000 contraseñas más comunes, así como otras comprobaciones (como cadenas repetidas, números de teléfono y palabras seguidas de números).
Otras versiones
Esta es la versión vanilla JS del plugin. También hay otras versiones disponibles:
- Versión de jQuery: howsecureismypassword/jquery
- Versión de WordPress: howsecureismypassword/wordpress
Instalación
bower install hsimp
CSS
Copie el archivo build/hsimp.css
a su directorio css
e inclúyalo en su documento <head>
:
<link rel="stylesheet" href="/css/hsimp.css">
JavaScript
Copie el archivo build/hsimp.min.js
a su directorio js
e inclúyalo al final del documento <body>
:
<script src="/js/hsimp.min.js"></script><!-- Other scripts go here -->
El archivo hsimp.min.js
puede utilizarse opcionalmente con los cargadores de módulos AMD y Common JS utilizando el nombre de módulo hsimp
. Si no se encuentra ningún cargador de módulos se pondrá a disposición una función global hsimp
.
Uso
La función hsimp
toma dos argumentos: un objeto de configuración y un elemento HTML <input>
hsimp({ options: { calculationsPerSecond: 1e10, // 10 billion, good: 31557600e3, // 1,000 years ok: 31557600 // 1 year }, outputTime: function (time, input) { console.log(time, input); }, outputChecks: function (checks, input) { console.log(checks, input); }}, document.getElementById("password"));
Configuración
El objeto de configuración admite tres propiedades:
-
options
: un objeto de opciones que afectan a los cálculos -
outputTime
: una función a la que se le pasa el tiempo que tardaría en descifrar la contraseña dada -
outputChecks
: una función a la que se le pasa una lista de resultados de varias comprobaciones
opciones
Actualmente hay tres opciones soportadas:
-
calculationsPerSecond
: el número supuesto de cálculos por segundo que podría hacer un cracker (por defecto: 10e9 – 10 mil millones) -
good
: el tiempo mínimo (en segundos) que una contraseña «buena» (verde) tardaría en descifrarse (por defecto: 31557600e6 – 1 millón de años) -
ok
: el tiempo mínimo (en segundos) que se tardaría en descifrar una contraseña «buena» (naranja) (por defecto: 31557600 – 1 año)
outputTime
A la función outputTime
se le pasan dos variables: el tiempo que se tardaría en descifrar la contraseña (como cadena legible por humanos) y (opcionalmente) la entrada a la que se refiere.
var renderTime = function (time, input) { document.getElementById("password-strength").innerHTML = time;}hsimp({ outputTime: renderTime }, document.getElementById("password"));
outputChecks
A la función outputChecks
se le pasan dos variables: una matriz de resultados de comprobación y (opcionalmente) la entrada a la que se refiere.
Cada resultado de comprobación es un objeto con tres propiedades:
-
name
: el nombre/título de la comprobación -
message
: algún texto explicativo -
level
: el nivel de gravedad (inseguro, advertencia, aviso, logro)
{ name: "Length: Very Short", message: "Your password is very short. The longer a password is the more secure it will be.", level: "warning"}
Idioma
Puede actualizar los archivos de idioma utilizando los siguientes métodos, cada uno de los cuales acepta un objeto:
hsimp.setDictionary(lang)
Establece los valores de «instantáneamente» y «para siempre». Ver https://github.com/howsecureismypassword/modules-main/blob/develop/dictionary.json
hsimp.setPeriodDictionary(lang)
Establece los períodos (por ejemplo, segundos, días, años, etc.). Véase https://github.com/howsecureismypassword/modules-period/blob/develop/period-dictionary.json
hsimp.setNamedNumberDictionary(lang)
Configura los nombres de los números. Véase https://github.com/howsecureismypassword/modules-named-number/blob/develop/named-number-dictionary.json
hsimp.setCheckerDictionary(lang)
Configura el texto de las distintas comprobaciones. Ver https://github.com/howsecureismypassword/modules-checker/blob/develop/checker-dictionary.json
Currying
La función hsimp
soporta currying. Esto significa que puede establecer las opciones una vez y luego utilizar la función devuelta para configurar más de una entrada:
var attachHSIMP = hsimp({ // shared options here});attachHSIMP(document.getElementById("input-1"));attachHSIMP(document.getElementById("input-2"));
Licencia
La Licencia MIT (MIT)
Copyright (c) 2015, Mark Nicholas Wales / Small Hadron Collider
Por la presente se concede permiso, sin cargo alguno, a cualquier persona que obtenga una copia de este software y los archivos de documentación asociados (el «Software»), para comerciar con el Software sin restricciones, incluyendo, sin limitación, los derechos de uso, copia, modificación, fusión, publicación, distribución, sublicencia y/o venta de copias del Software, y para permitir a las personas a las que se les proporcione el Software que lo hagan, con sujeción a las siguientes condiciones:
El aviso de copyright anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA «TAL CUAL», SIN GARANTÍAS DE NINGÚN TIPO, EXPRESAS O IMPLÍCITAS, INCLUYENDO PERO SIN LIMITARSE A LAS GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O LOS TITULARES DE LOS DERECHOS DE AUTOR SERÁN RESPONSABLES DE NINGUNA RECLAMACIÓN, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN CONTRACTUAL, EXTRACONTRACTUAL O DE OTRO TIPO, QUE SURJA DE, O ESTÉ RELACIONADA CON EL SOFTWARE O EL USO U OTRAS OPERACIONES CON EL SOFTWARE.