howsecureismypassword / hsimp Archived

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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.