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)
|