Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   HTML, Javascript y otros (https://www.clubdelphi.com/foros/forumdisplay.php?f=38)
-   -   [Autobombo DEC] Plugin Pass Meter para jQuery (https://www.clubdelphi.com/foros/showthread.php?t=52818)

dec 31-01-2008 23:01:25

[Autobombo DEC] Plugin Pass Meter para jQuery
 
Hola,

Sé que por aquí tiene que haber admiradores de jQuery, no puede ser de otro modo, porque esta librería (¿o era biblioteca?) de JavaScript es admirable. Vamos, que viva la madre que parió al autor, podría decirse. Pues bien, que he escrito un sencillo plugin para jQuery de que quería informar por aquí, por si puede resultar de utilidad a alguien. ¡Y ya de paso podemos charlar un poco si queréis! :p

El plugin lo he llamado en un alarde de originalidad sin precedentes "Pass Meter", y, puede usarse para "medir" la "fuerza" de una contraseña. Su funcionamiento es muy sencillo: se "acopla" a un elemento "INPUT", preferiblemente del tipo "password", y el plugin muestra una imagen de fondo, que va cambiando según el usuario escribe en el "INPUT", y que indica la "fuerza" de la contraseña "gráficamente".

Como veo que me lío y que más vale un ejemplo que ciento volando, aquí van ya una serie de enlaces sobre el plugin, para que podáis descargarlo, probarlo, y lo que queráis:

- Ejemplo "en línea" del plugin

- Descarga directa del plugin + jQuery

- Página de mi bitácora dedicada al plugin

- Página del plugin Pass Meter en jQuery.com

PD. Algunos llaman SPAM al autobombo. Pero yo no soy de esos. ¿O sí? :eek: :p

dec 01-02-2008 01:08:09

Hola,

Hombre, ni un "no está mal", o "vale, veremos qué tal"... ¡con amigos así quien necesita enemigos! :D :D :D

PD. ¡Arriba, arriba! :D :D

egostar 01-02-2008 01:19:58

Cita:

Empezado por dec (Mensaje 262541)
Hola,

Hombre, ni un "no está mal", o "vale, veremos qué tal"... ¡con amigos así quien necesita enemigos!

PD. ¡Arriba, arriba! :D :D

:D:D:D, nada mal tu nuevo juguetito amigo Dec, una pregunta este PlugIn tiene versión para Win32 :D

Salud OS

dec 01-02-2008 01:45:09

Hola,

¡Esto ya es otra cosa! ;)

El plugin es multiplataforma. Me han dicho que va bien en el iPhone y to, ¡no te digo más! :D :D

xEsk 01-02-2008 02:48:16

Hola, he probado el ejemplo "en línea", para ver que tal funciona, xD Y funciona bien... xD

Es "duro de pelar", no se conforma con cualquier cosa para decir que es un "buen password" xDD

Imagino que seria complicado, pero ya que detecta si pones siempre la misma letra (y te lo cuenta como "cutre password"), podría comprobar "mini secuencias", ya que el password: "1212121212121212121212..." lo considera bueno.

Cuando uno no tiene que hacerlo, pedir es muy fácil xDDDD

Saludos.

dec 01-02-2008 02:59:10

Hola,

Bueno. Tengo que decir que en realidad el plugin no sigue ningún "estándar" (ni sé si existe) para comprobar la "dureza" de una contraseña, sino que más bien puede tomarse como una especie de "indicativo". Además añado que el corazón del plugin, mejor dicho, el algoritmo que se encarga de comprobar la dureza de la contraseña no lo he escrito yo, sino que lo he adaptado de otro plugin para jQuery al que me parecía que podía añadir algo.

De todas formas huelga decir que tu sugerencia es buena xEsk, y que, aunque no puedo prometer nada, todo se andará, como suele decirse. ¡Muchas gracias! ;)

Casimiro Notevi 01-02-2008 09:57:36

Veo que lo que prima es la longitud, creo que el algoritmo no es demasiado eficaz.

dec 01-02-2008 16:27:02

Hola,

Hombre, el algoritmo podrá mejorarse lo que se quiera (de hecho, reconozco que yo trabajé más en la "integración" con jQuery, en lo que es el plugin, en cómo puede usarse) pero, tengo que decir que no se basa sólo en la longitud. Aquí están los dos métodos principales del plugin, para que pueda verse. Ah, ¡y se admiten sugerencias! :)

Código PHP:

  function checkRepetition(pLenstr){
    var 
res '';
    for(
0str.lengthi++){
      var 
repeated true;
      for(
0pLen && (pLen) < str.lengthj++){
        
repeated repeated && (str.charAt(i) == str.charAt(pLen));
      }
      if(
pLen){
        
repeated false;
      }
      if(
repeated){
        
+= (pLen 1);
        
repeated false;
      }else{
        
res += str.charAt(i);
      }
    }
    return 
res;
  };       
  
  function 
passwordStrength(password){
    var 
score 0;
    if(
password.length == 0){
      return 
emptyPassResult;
    }else if(
password.length ){ 
      return 
shortPassResult;
    }
    
score += (password.length 4);
    
score += (checkRepetition(1password).length password.length);
    
score += (checkRepetition(2password).length password.length);
    
score += (checkRepetition(3password).length password.length);
    
score += (checkRepetition(4password).length password.length);
    
// password has 3 numbers
    
if(password.match('/(.*[0-9].*[0-9].*[0-9])/')){
      
score += 5;
    } 
    
// password has 2 sybols
    
if(password.match('/(.*[!,@,#,$,%,^,&,*,?,_,~].*[!,@,#,$,%,^,&,*,?,_,~])/'))
    {
      
score += 5;
    }    
    
// password has Upper and Lower chars
    
if(password.match('/([a-z].*[A-Z])|([A-Z].*[a-z])/')){
      
score += 10;
    }    
    
// password has number and chars
    
if(password.match('/([a-zA-Z])/') && password.match('/([0-9])/')){
      
score += 15;
    }
    
// password has number and symbol
    
if(password.match('/([!,@,#,$,%,^,&,*,?,_,~])/'
     && 
password.match('/([0-9])/')){
       
score += 15;
    }
    
// password has char and symbol
    
if(password.match('/([!,@,#,$,%,^,&,*,?,_,~])/'
     && 
password.match('/([a-zA-Z])/')){
       
score += 15;
    }
    
// password is just a nubers or chars
    
if(password.match('/^\w+$/') || password.match('/^\d+$/')){
      
score -= 10;
    }
    if(
score 0){
      
score 0;
    }
    if(
score 100){
      
score 100;
    }
    if(
score 34){
      return 
badPassResult;
    }
    if(
score 68){
      return 
goodPassResult;
    }
    return 
strongPassResult;
  }; 


Casimiro Notevi 01-02-2008 20:06:42

Cita:

Empezado por dec (Mensaje 262670)
Hola,
Hombre, el algoritmo podrá mejorarse lo que se quiera (de hecho, reconozco que yo trabajé más en la "integración" con jQuery, en lo que es el plugin, en cómo puede usarse) pero, tengo que decir que no se basa sólo en la longitud. Aquí están los dos métodos principales del plugin, para que pueda verse. Ah, ¡y se admiten sugerencias! :)

Lo comentaba porque (probándolo en línea) sólo consideraba "fuerte" el password cuando tiene una longitud bastante considerable.
De todas formas, no me hagas mucho caso, era sólo una apreciación tras una ligera prueba. Seguramente es que los passwords que he usado eran realmente "flojos" y el algoritmo los ha identificado correctamente: no eran buenos :)


La franja horaria es GMT +2. Ahora son las 07:02:13.

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