ASP Fcil
El sitio para programadores ASP  

Búsqueda rápida
Ayuda
Secciones
Portada
Diario
Artículos
Código
Trucos
Foros ASP
Recursos
Favoritos
Referencia
Tutorial SQL
SQL-O-Matic
Otras
Boletín ASPFácil
Colabora
Sobre este sitio
Anunciarse aquí
Cont@ctar
Formación


Versión para imprimir / Salvar en Favoritos

Generar passwords aleatorios

Aquí os presento una función escrita en VBScript que os genera secuencias de caracteres aleatorias, muy útil para generar contraseñas para los usuarios de tu sitio Web. Genera contraseñas con y sin caracteres repetidos y de la longitud que queramos. ¡Números aleatorios en VBScript!

Introducción

Nuestra función, PwdAleatorio va a recibir como argumentos:

  • Longitud, que es la longitud de la contraseña que queremos.
  • Repetir (verdadero/falso) que indica si se pueden o no repetir caracteres.

Para calcular la contraseña, vamos a hallar números aleatorios, y después traducimos esos números en caracteres.

(El código de la función al completo está disponible al final del artículo)

Números aleatorios

VBscript nos provee de un generador de números aleatorios. Debemos utilizar Randomize (instrucción, se pone a secas) para inicializar una semilla para generar los números aleatorios, y después la función Rnd que devuelve un número aleatorio entre 0 y 1. Si multiplicamos este valor por un número, obtenemos números mayores que cero ¿verdad? Y si queremos números enteros, como en nuestro caso, podemos utilizar la función Int que devuelve sólo la parte entera del número, sin decimales.

Por ejemplo:

<%
Randomize
Response.Write ( int(rnd*10))
%>

nos devuelve números aleatorios entre 0 y 9: rnd nos da un 0.534 por ejemplo. Lo multiplicamos por 10 y tenemos 5.34. Por último int nos devuelve el 5. Si quisiéramos entre 1 y 10, tendríamos que sumar 1.

PwdAleatorio al desnudo

Para obtener una contraseña, necesitamos elegir caracteres (letras y dígitos, por ejemplo). Para hacer esto, definimos un vector con todos los caracteres que queremos utilizar, mediante la función Array: Array("a", "b",.....). Después, elegimos números aleatorios entre 0 y el máximo índice de este vector, y tenemos nuestros caracteres. ¿Fácil verdad?

Si queremos evitar que no se repitan caracteres, tenemos que llevar la cuenta de cuáles ya hemos escogido. Nos creamos otro vector para ir guardando los números aleatorios. Cuando escogemos uno, comprobamos que no existe ya en el vector antes de incluirlo.

Finalmente, devolvemos la cadena utilizando Join. Esta función une todos los elementos de un vector, separándolos con un delimitador que le especificamos. Si ponemos dos dobles comillas, simplemente une todos los elementos, que es lo que queremos.

Para utilizar la función en vuestras páginas ASP, simplemente tenéis que escribir:

<%
Dim strPassword

strPassword = PwdAleatorio(10, False)
Response.Write("Te hemos asignado esta contraseña: " & strPassword)

%>

En resumen

Esta sencilla función es un buen ejemplo de uso de los números aleatorios. Se me olvidaba comentaros que podéis personalizarla a vuestro gusto, incluyendo otros caracteres válidos para las contraseñas, como #, _, -, ?, !... Sólo tenéis que añadirlas a la lista.

Espero que os sea útil, hasta la próxima.


Enlaces

  • Código fuente de la función en formato texto


  • >> ¿Quieres saber cuándo se publicarán nuevos artículos? ¡Suscríbete al Boletín de ASPFácil! << 
    >> Comparte tus dudas y comentarios sobre este artículo en el foro Artículos de ASPFácil << 
    (Arriba)

    © ASP Fácil 2000-2004 excepto en casos indicados
    El mejor alojamiento web en acens