Ya se que ASP está más que obsoleto y que es un paso atrás programar en esto pero a veces no te puedes negar y hay personas que por mucho que esté obsoleto se niegan a avanzar en sus sistemas web, en este caso necesitaba una función que generase contraseñas aleatorias y con estas condiciones:

  1. Incluyese, al menos, un número.
  2. Incluyese, al menos, una letra mayúscula.
  3. Incluyese, al menos, una letra minúscula.
  4. La longitud fuese variable por parámetro.

La genero aleatoriamente (más o menos) no es aleatoria del todo pero nos sirve, tampoco es 100% aseguradas todas las condiciones por eso voy a generar otra función para comprobarla y sino invocar de nuevo a esta función recursivamente.

Aquí la tenemos:

Function GeneraPwdSegura(longit)

	num = Array("1", "2", "3", "4", "5", "6", "7", "8", "9")
	min    = Array("a", "b", "c", "d", "e", "f", "g", "h", "j", "k", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z")
	may    = Array("A", "B", "C", "D", "F", "G", "H", "J", "K", "L", "M", "N", "O" ,"P" , "Q" , "R" , "S" , "T" , "U" , "V" , "W" , "X" , "Y", "Z")
	
	Do While Len(Resultado) < longit Randomize() alea = Int(100 * Rnd()) if (alea >=66) then 	
			Resultado = resultado & may(Int(24 * Rnd()))        		
			else
				if ((alea <= 66) and (alea >= 33)) then 
					Resultado = resultado & min(Int(24 * Rnd()))
				else
					Resultado = resultado & num(Int(9 * Rnd()))
				end if		
		end if
    Loop
	GeneraPwdSegura = Resultado	
End Function