Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Carloscr03 en 12 de Abril 2021, 19:12
-
Hola buenas, quería pedir ayuda por aquí ya que tengo que hacer un programa que genere una contraseña de la longitud que quiera el usuario y que el usuario tambien pueda decidir si lleva mayúsculas, minúsculas, caracteres especiales y números o todo y encima que se ejecute desde la consola del ordenador y la verdad no sé como empezar. Si me pudieseis ayudar lo agradeceria mucho ;D
-
Bueno, para empezar, sería saber en que lenguaje tienes que programarlo.
Luego, una forma que se me ocurre ahora mismo para resolverlo, sería utilizar una matriz de tipo char/caracteres. O también de String, podría servir.
Cada fila de la matriz podría estar compuesta de un tipo de carácter.
Por ejemplo, la primera fila, letras minúsculas.
Segunda, mayúsculas. Tercera, números. Cuarta, caracteres especiales.
a | b | c | d | e | f | g | h | i | j | k | l | m | n | ... |
A | B | C | D | E | F | G | H | I | J | K | L | M | N | ... |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | 1 | 2 | 3 | 4 | 5 | ... |
| | ! | " | @ | · | # | $ | ~ | % | € | ¬ | & | / | ( | ) | ... |
Entonces, según lo que escoja el usuario, obtenemos posiciones al azar de las filas correspondientes.
Si solo quiere minúsculas, pues solo cogemos de la primera fila, la [ 0 ].
Y para la columna generamos un random, según la longitud de la matriz.
Supongamos que es 4x50.
Pues, escrito en una especie de pseudocódigo:
int col = random entre 0 y 49
obtener matriz[0][col]
Si quieres minúsculas y caracteres especiales, pues habría que coger de fila [ 0 ] y de [3]
¿Cómo hacemos para elegir aleatoriamente de una fila u otra.
Pues lo mismo, generando más valores random.
Podemos poner esos dos valores de fila en un array y sacar de ahí un valor u otro de forma random
int[] filasElegidas = {0,3}; //Minúsculas y especiales
int azar = random entre 0 y 1;
int fila = filasElegidas[azar];
int col = random entre 0 y 49
obtener matriz[fila][col]
Este proceso de obtención elementos al azar de la matriz, se haría dentro de un bucle que se repita tantas veces como el usuario haya indicado como longitud para su contraseña