En la mayoría de los sitios webs, se manejan con contraseñas para entrar como usuario registrado, y también suelen dar la opción de recuperar estas claves en caso de olvido. Cuando se pulsa la opción de recuperar claves, la que se envía es una contraseña creada aleatoria mente. Vamos a ver como crear esta contraseña a partir de JavaScript y jQuery.

Los script que crearemos, formaran contraseñas de longitud que les indiquemos.

La primera opción que vamos a manejar es un script creado en JavaScript.

function password(length, special) {

  var iteration = 0;

  var password = "";

  var randomNumber;

  if(special == undefined){

      var special = false;

  }

  while(iteration < length){

    randomNumber = (Math.floor((Math.random() * 100)) % 94) + 33;

    if(!special){

      if ((randomNumber >=33) && (randomNumber <=47)) { continue; }

      if ((randomNumber >=58) && (randomNumber <=64)) { continue; }

      if ((randomNumber >=91) && (randomNumber <=96)) { continue; }

      if ((randomNumber >=123) && (randomNumber <=126)) { continue; }

    }

    iteration++;

    password += String.fromCharCode(randomNumber);

  }

  return password;

}

A esta función le pasamos dos valores: la longitud de la contraseña y si queremos que esta tenga valores especiales.

Ejemplos de salida serian los siguientes:

password(8);
//Salida: Yrc7TxX3
password(12, true);
Salida: C}4_ege!P&#M

Ahora, veremos la función, pero creada con jQuery.

$.extend({
  password: function (length, special) {
    var iteration = 0;
    var password = "";
    var randomNumber;
    if(special == undefined){
        var special = false;
    }
    while(iteration < length){
        randomNumber = (Math.floor((Math.random() * 100)) % 94) + 33;
        if(!special){
            if ((randomNumber >=33) && (randomNumber <=47)) { continue; }
            if ((randomNumber >=58) && (randomNumber <=64)) { continue; }
            if ((randomNumber >=91) && (randomNumber <=96)) { continue; }
            if ((randomNumber >=123) && (randomNumber <=126)) { continue; }
        }
        iteration++;
        password += String.fromCharCode(randomNumber);
    }
    return password;
  }
});

Para hacer la llamada, deberíamos de hacer lo siguiente:

$.password(8);
$.password(12, true);


Fuente: JQuery HowTo