Crear contraseña aleatoria

Iniciado por MiguelSanchez1703, 23 Diciembre 2016, 20:08 PM

0 Miembros y 1 Visitante están viendo este tema.

MiguelSanchez1703

Hola, me gustaría crear un programa que generara contraseñas aleatorias de la longitud seleccionada (entre los caracteres 33 y 125 de la tabla ASCII), el código es el siguiente, pero cuando lo ejecuto, me imprime otros caracteres que no están entre los dos dichos anteriormente, grácias

Código (cpp) [Seleccionar]
#include <iostream>
#include <stdlib.h>

using namespace std;

int main () {
int cantidad;
char contrasenya;
cout << "Longitud de la contrasenya: ";
cin >> cantidad;
for (int contador =1 ; contador <= cantidad ; contador++) {
contrasenya = (33+rand() % 125);
cout << contrasenya;
   }
return 0 ;
}

engel lex

(33+rand() % 125);

rand()%125 generará numeros entre 0 y 124... a eso luego le sumas 33... es decir genera numeros entre 33 y 157
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Borito30

Cita de: engel lex en 23 Diciembre 2016, 20:41 PM
(33+rand() % 125);

rand()%125 generará numeros entre 0 y 124... a eso luego le sumas 33... es decir genera numeros entre 33 y 157
Entonces 33 sería la posición y se le sumaría 124 lo que da 157?
Estoy en contra del foro libre y la Sección de juegos y consolas (distraen al personal)

MAFUS

Para que lo veas bien:
Cambiamos rand()%125 por X, donde X puede tener un valor entre 0 y 124.

Si haces X + 33 cualquier valor que tenga X se le suman 33 unidades. Por tanto su rango estará en 0 + 33 y 124 + 33, es decir, entre 33 y 157.

MiguelSanchez1703

#4
Y como podría hacer para limitar el inicio de la contraseña, ¿hay alguna manera?
Gracias.

Ya lo he solucionado, de una manera muy simple, solamente he disminuido el segundo valor (125) en 33 unidades (92) de manera que cuando suma los 33 me da el resultado deseado.