Script para cálculo do valor de segurança de uma senha

Script muito simples em Javascript para comprovar o grau de segurança de uma senha escrita pelo utilizador. Dado que se trata de um script a correr do lado do cliente, a evolução do nível de segurança poderá ser mostrada à medida que o utilizador vai escrevendo a sua senha no campo do formulário.

Este script poderá ser utilizado livremente no desenvolvimento de páginas web, oferecendo aos visitantes uma informação fide-digna do grau de segurança das senhas criadas, motivando uma escolha mais “pensada” da respectiva senha.

Para valorizar o grau de segurança de uma senha vamos ter em conta as seguintes pontuações sobre diferentes conceitos:

Senha tem letras e números: +30%
Senha tem maiúsculas e minúsculas: +30%
Senha tem entre 4 e 5 caracteres: +10%
Senha tem entre 6 e 8 caracteres: +30%
Senha tem mais de 8 caracteres: +40%

Estas percentagens podem ser definidas pelo programador, consoante o resultado final pretendido, e o site onde a validação estará incluída.

Outros critérios podem ser acrescentados, ou removidos alguns existentes, tendfo por base a mesma lógica, o resultado final e o site onde se vai incluir o script.

Para que os critérios fiquem mais claros, junto uns exemplos de combinações de critérios e respectivas percentagens finais:

A) Uma senha com números e letras, com 7 caracteres teria: 30% por letras e números, mais 30% por ter entre 6 e 8 caracteres: resultado final => 60% de segurança.
B) Outra senha com letras maiúsculas e minúsculas, sem números, e com 8 caracteres: 30% por letras maiúsculas e minúsculas, mais 40% por mais de 8 caracteres: resultado final => 70% de segurança.

A função de javascript está transcrita de seguida:

function seguranca_senha(senha){

var seguranca = 0;
if (senha.length!=0){
if (tem_numeros(senha) && tem_letras(senha)){
seguranca += 30;
}
if (tem_minusculas(senha) && tem_maiusculas(senha)){
seguranca += 30;
}
if (senha.length >= 4 && senha.length <= 5){
seguranca += 10;
}else{
if (senha.length >= 6 && senha.length <= 8){
seguranca += 30;
}else{
if (senha.length > 8){
seguranca += 40;
}
}
}
}
return seguranca
}

Vão sendo validados e conjugados os critérios que definimos anteriormente, para se ir atribuíndo um valor de segurança à senha introduzida.

Exemplo de uso num formulário que pede uma senha

Agora, vejamos um exemplo simples do uso da função num formulário, que mostra a segurança de uma senha escrita pelo utilizador:

Exemplo de formulário:

<form>
Senha: <input type=”password” size=20 name=”senha” onkeyup=”mostra_seguranca_senha(this.value, this.form)”>
<i>Segurança da Senha:</i> <input name=”valor_seguranca” type=”text” style=”border: 0px; background-color:ffffff; text-decoration:italic;” onfocus=”blur()”>
</form>

Como se vê, temos 1 campo INPUT do tipo PASSWORD onde escreveremos a senha. A este campo acrescentou-se um evento ONKEYUP que é executado quando o utilizador clica uma tecla, mas apenas no momento em que a solta. Essa função será a responsável por fazer com que se visualize o valor de segurança da senha.

De seguida, colocamos outro campo de texto, para colocar o valor de segurança da senha. Neste campo impedimos que se possa escrever, com o evento onfocus=”blur()”>. Só poderá ser modificado por programação Javascript.

Vejamos, então, a função mostra_seguranca_senha(), que  se encarrega de receber tanto a senha escrita como o formulário onde se encontra, para actualizar o respectivo valor de segurança.

function mostra_seguranca_senha(senha,formulario){
seguridad=seguranca_senha(senha);
formulario.valor_seguranca.value=seguranca + “%”;
}

A função devolve a segurança da string digitada como senha, colocando esse valor no campo valor-seguranca.

Verifique o resultado final aqui.


bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark bookmark
tabs-top


3 Responses to “Script para cálculo do valor de segurança de uma senha”

  1. Rui Machado diz:

    Artigo muito interessante, obrigado.

    Reportar este comentário!

  2. Mokhooday diz:

    Yo Yo Yo! wazzap!

    hukilxxxru

    And Bye.

    Reportar este comentário!

Leave a Reply

Please leave these two fields as-is:

Protected by Invisible Defender.

WooRank of ptgfx.com