Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Calidad Contraseña (https://www.clubdelphi.com/foros/showthread.php?t=35841)

tertuliano 21-09-2006 21:40:51

Calidad Contraseña
 
Hola, saben de algun algoritmo que valide la calidad de un pasword elejido. Por ej que no haya repeticiones de caracteres, secuancias faciles de encontrar, etc.

Saludos

Caral 21-09-2006 22:25:40

Hola
La realidad es que no entiendo bien la pregunta:
Pero se me ocurre que por medio de una matriz se podrian especificar ciertas condiciones que se tendrian que cumplir para que el password fuera el correcto, no se, se me ocurre.
Saludos

maeyanes 21-09-2006 22:43:54

Tengo una función en JavaScript que hace algo como lo que quieres, ya sería que la traduzcas a Delphi:

Código:

function check_pw(pw_to_check)
{
        var counter_to_check = 0;
        var minlength_to_check = 6;

        if (pw_to_check.length >= minlength_to_check)
        {
                counter_to_check = counter_to_check + 1;
        }
        if (pw_to_check.match(/[A-Z\Ä\Ö\Ü]/))
        {
                counter_to_check = counter_to_check + 2;
        }
        if (pw_to_check.match(/[a-z\ä\ö\ü\ß]/))
        {
                counter_to_check = counter_to_check + 1;
        }
        if (pw_to_check.match(/[0-9]/))
        {
                counter_to_check = counter_to_check + 2;
        }
        if (pw_to_check.match(/[\.\,\?\!\%\*\_\#\:\;\~\\&\$\§\€\@\/\=\+\-\(\)\[\]\|\<\>]/))
        {
          counter_to_check = counter_to_check + 2;
        }
        if (pw_to_check == document.getElementsByName('username').username.value)
        {
                counter_to_check = 0;
        }
        if (pw_to_check == document.getElementsByName('email').email.value)
        {
                counter_to_check = 0;
        }

        if (counter_to_check <= 2)
        {
                document.getElementsByName('holder_pw')[0].style.backgroundColor = 'red';
                document.getElementsByName('holder_pw')[0].style.color = 'black';
                document.getElementsByName('holder_pw')[0].style.border = '1px solid black';
                document.getElementsByName('holder_pw')[0].value = 'Insegura';
        }
        else if (counter_to_check <= 4)
        {
                document.getElementsByName('holder_pw')[0].style.backgroundColor = 'yellow';
                document.getElementsByName('holder_pw')[0].style.color = 'black';
                document.getElementsByName('holder_pw')[0].style.border = '1px solid black';
                document.getElementsByName('holder_pw')[0].value = 'No recomendable';
        }
        else if (counter_to_check <= 5)
        {
                document.getElementsByName('holder_pw')[0].style.backgroundColor = 'green';
                document.getElementsByName('holder_pw')[0].style.color = 'white';
                document.getElementsByName('holder_pw')[0].style.border = '1px solid black';
                document.getElementsByName('holder_pw')[0].value = 'Relativamente segura';
        }
        else if (counter_to_check <= 7)
        {
                document.getElementsByName('holder_pw')[0].style.backgroundColor = 'green';
                document.getElementsByName('holder_pw')[0].style.color = 'white';
                document.getElementsByName('holder_pw')[0].style.border = '1px solid black';
                document.getElementsByName('holder_pw')[0].value = 'Segura';
        }
        else if (counter_to_check == 8)
        {
                document.getElementsByName('holder_pw')[0].style.backgroundColor = 'green';
                document.getElementsByName('holder_pw')[0].style.color = 'white';
                document.getElementsByName('holder_pw')[0].style.border = '1px solid black';
                document.getElementsByName('holder_pw')[0].value = 'Muy segura';
        }
}

Si te fijas, usan mucho las expresiones regulares. Existe para Delphi alguna biblioteca para manejo de expresiones regulares, solo es cosa que hagas una búsqueda...


Saludos...


La franja horaria es GMT +2. Ahora son las 02:30:34.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi