Agora você pode usar o medidor de força de senha howsecureismypassword.net em seus próprios sites.
About
Real, além de dizer que uma senha é “fraca” ou “forte”, Howsecureismypassword.net permite que seus usuários saibam quanto tempo levaria para alguém descobrir sua senha. Também compara com as 10.000 senhas mais comuns, assim como um número de outras verificações (como strings repetidas, números de telefone e palavras seguidas de números).
Outras Versões
Esta é a versão baunilha do plugin JS. Outras versões também estão disponíveis:
- jQuery Version: howsecureismypassword/jquery
- WordPress Version: howsecureismypassword/wordpress
Installation
bower install hsimp
CSS
Copie o ficheiro build/hsimp.css
para o seu directório css
e inclua-o no seu documento <head>
:
<link rel="stylesheet" href="/css/hsimp.css">
JavaScript
Copie o ficheiro build/hsimp.min.js
para o seu directório js
e inclua-o no fundo do documento <body>
:
<script src="/js/hsimp.min.js"></script><!-- Other scripts go here -->
>
O ficheiro hsimp.min.js
pode opcionalmente ser usado com os carregadores de módulos AMD e Common JS usando o nome do módulo hsimp
. Se nenhum carregador de módulo for encontrado, uma função global hsimp
será disponibilizada.
Uso
A função hsimp
leva dois argumentos: um objeto de configuração e um HTML <input>
elemento
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"));
Configuração
O objeto de configuração suporta três propriedades:
-
options
: um objeto de opções que afetam os cálculos -
outputTime
: uma função que é passada o tempo que levaria para quebrar a senha dada -
outputChecks
: uma função que é passada uma lista de resultados de várias verificações
opções
Existem atualmente três opções suportadas:
-
calculationsPerSecond
: o número assumido de cálculos por segundo que um cracker poderia fazer (padrão: 10e9 – 10 bilhões) -
good
: o tempo mínimo (em segundos) que uma senha “boa” (verde) levaria para crack (padrão: 31557600e6 – 1 milhão de anos) -
ok
: o tempo mínimo (em segundos) que uma senha “ok” (laranja) levaria para crack (padrão: 31557600 – 1 ano)
outputTime
A função outputTime
é passada duas variáveis: o tempo que levaria para crackar a senha (como uma string legível por humanos) e (opcionalmente) a entrada à qual ela se refere.
var renderTime = function (time, input) { document.getElementById("password-strength").innerHTML = time;}hsimp({ outputTime: renderTime }, document.getElementById("password"));
outputChecks
A função outputChecks
é passada duas variáveis: um array de resultados de verificação e (opcionalmente) o input a que se refere.
Cada resultado de verificação é um objecto com três propriedades:
-
name
: o nome/título da verificação -
message
: algum texto explicativo -
level
: o nível de gravidade (inseguro, aviso, aviso, realização)
{ name: "Length: Very Short", message: "Your password is very short. The longer a password is the more secure it will be.", level: "warning"}
Linguagem
Você pode atualizar os arquivos de linguagem usando os seguintes métodos cada um dos quais aceita um objeto:
hsimp.setDictionary(lang)
Configura os valores para “instantaneamente” e “para sempre”. See https://github.com/howsecureismypassword/modules-main/blob/develop/dictionary.json
hsimp.setPeriodDictionary(lang)
Configura os períodos (por exemplo, segundos, dias, anos, etc.). Ver https://github.com/howsecureismypassword/modules-period/blob/develop/period-dictionary.json
hsimp.setNamedNumberDictionary(lang)
Configura os nomes dos números. Ver https://github.com/howsecureismypassword/modules-named-number/blob/develop/named-number-dictionary.json
hsimp.setCheckerDictionary(lang)
Configura o texto das várias verificações. Ver https://github.com/howsecureismypassword/modules-checker/blob/develop/checker-dictionary.json
Currying
A função hsimp
suporta o currying. Isto significa que você pode definir as opções uma vez e depois usar a função retornada para configurar mais de uma entrada:
var attachHSIMP = hsimp({ // shared options here});attachHSIMP(document.getElementById("input-1"));attachHSIMP(document.getElementById("input-2"));
Licença
A Licença MIT (MIT)
Direito de cópia (c) 2015, Mark Nicholas Wales / Small Hadron Collider
É concedida a permissão, gratuitamente, a qualquer pessoa que obtenha uma cópia deste software e dos ficheiros de documentação associados (o “Software”), para negociar o Software sem restrições, incluindo sem limitação os direitos de usar, copiar, modificar, fundir, publicar, distribuir, sublicenciar e/ou sellcopiar o Software, e permitir que as pessoas a quem o Software é fornecido o façam, sujeito às seguintes condições:
O aviso de direitos autorais acima e este aviso de permissão devem ser incluídos em todas as cópias ou partes substanciais do Software.
O SOFTWARE É FORNECIDO “TAL COMO ESTÁ”, SEM GARANTIA DE QUALQUER TIPO, EXPRESSAMENTE ORIMPLIED, INCLUINDO MAS NÃO LIMITADO ÀS GARANTIAS DE COMERCIABILIDADE, ADEQUAÇÃO A UM PROPÓSITO PARTICULAR E NÃO-INFRAÇÃO. EM NENHUMA HIPÓTESE OS AUTORES OU TITULARES DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER RECLAMAÇÃO, DANO OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO DE CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE, FORA OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS TRANSAÇÕES NO SOFTWARE.