Autor
|
Tema: Generador de contraseñas (Leído 9,229 veces)
|
..:ALT3RD:..
Desconectado
Mensajes: 205
C++ Programmer
|
Buenas quiero hacer un generador de contraseñas y esto es lo que llevo (las letras no estan todas, cuando terminé el programa pongo las demas) #include <iostream> #include <cstdlib>
using namespace std;
int main() {
int contador=0; int cifras; char letras[10] ={'a','b','c','d','e','f','g','h','i','\0'}; cout << "____Generador____" << endl; cout << "" << endl; cout << "Cuantas cifras:"; cin >> cifras; do {
contador++;
}while (cifras >= contador);
return 0; } Dentro de la sentecia do while , me gustaría saber como hacer azar con caracteres, se hacerlo con numeros pero no encuentro forma de hacerlo con los caracteres del array letras. Un salu2!
|
|
|
En línea
|
"Mañana sabrás que hoy no sabes nada"
|
|
|
Queta
Desconectado
Mensajes: 267
|
Un método sencillo y rápido sería calcular el módulo de 26, cuyo resultado sería un entero entre 0 y 25, y luego sumarlo por el carácter 'a': char mi_letra = (char)(rand() % 26 + 'a');
La explicación es sencilla: 'a' equivale a 97, en el código ASCII, y en total hay 26 letras minúsculas. Si el resultado del módulo fuese 0, la suma sería 97 + 0, o sea, la letra 'a'; si fuese 1 sería 97 + 1 que equivaldría a la letra 'b' y así sucesivamente hasta llegar a 97 + 25 que su resultado sería la 'z'. En base a esta lógica, puedes aplicarlo para letras mayúsculas y cualquier otro signo.
|
|
|
En línea
|
"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
|
|
|
..:ALT3RD:..
Desconectado
Mensajes: 205
C++ Programmer
|
Me parece una forma interesante de hacerlo, gracias ya lo comprendi
|
|
|
En línea
|
"Mañana sabrás que hoy no sabes nada"
|
|
|
Queta
Desconectado
Mensajes: 267
|
De nada .
|
|
|
En línea
|
"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
|
|
|
..:ALT3RD:..
Desconectado
Mensajes: 205
C++ Programmer
|
Aqui esta el codigo completo por si a alguien le interesa: #include <iostream> #include <cstdlib>
using namespace std;
int main() {
int contador=0; int cifras; int opcion; cout << "____Generador____" << endl; cout << "" << endl; cout << "1-Minusculas" << endl; cout << "2-Minusculas y Mayusculas" << endl; cout << "3-Minusculas y Numeros" << endl; cout << "Numero de Cifras:" << endl; cin >> cifras; cout << "Elige una opcion:" << endl; cin >> opcion; switch (opcion) {
case 1: do { contador++; char mi_letra = (char)(rand() % 26 + 'a'); cout <<mi_letra; }while (cifras>= contador); break;
case 2: do { contador++; char mi_letra2 = (char)(rand() % 26 + 'a'); char mi_letra3 = (char)(rand() % 26 + 'A'); cout << mi_letra2 << mi_letra3; }while (cifras >= contador); break;
case 3: do { contador++; char mi_letra4 = (char)(rand() % 26 + 'a'); char mi_letra5 = (char)(rand() % 9 + '0'); cout << mi_letra4 << mi_letra5; }while (cifras >= contador); break;
}
return 0; }
|
|
|
En línea
|
"Mañana sabrás que hoy no sabes nada"
|
|
|
do-while
Desconectado
Mensajes: 1.276
¿Habra que sacarla de paseo?
|
¡Buenas! No es que tu codigo este mal, pero hay una forma de generar un solo caracter por iteracion para el segundo y tercer caso: Mayusculas y minusculas char mi_letra = (char)((rand() % 26 + 'a') + (rand() % 2) * ('A' - 'a'));
Asi si rand() % 2 == 1, generara una mayuscula y si rand() % 2 == 0 sera una letra minuscula. Minusculas y numeros: int numero = rand() % 2; char mi_letra = (char)(rand() % (26 - 16 * numero) + 'a' + numero * ('0' - 'a'));
Si numero == 1, generaras primero un numero aleatorio ente 0 y 9, al que le sumaras 'a' y '0' - 'a', por lo que te generara un digito entre 0 y 9. Si numero == 0, generaras un numero entre 0 y 25 al que le sumaras 'a' y 0 * ('0' - 'a'), es decir, tendras un caracter entre 'a' y 'a' + 25. ¡Saludos!
|
|
|
En línea
|
- Doctor, confundo los números y los colores. - Vaya marrón. - ¿Marrón? ¡Por el culo te la hinco!
|
|
|
..:ALT3RD:..
Desconectado
Mensajes: 205
C++ Programmer
|
Gracias por el detalle
|
|
|
En línea
|
"Mañana sabrás que hoy no sabes nada"
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Batch] Generador de contraseñas seguras
Scripting
|
_m
|
3
|
5,408
|
27 Enero 2009, 17:11 pm
por _m
|
|
|
Google está probando su propio generador y gestor de contraseñas
Noticias
|
wolfbcn
|
0
|
2,082
|
6 Septiembre 2014, 16:52 pm
por wolfbcn
|
|
|
[Python]Generador de contraseñas
Scripting
|
Iluminadora
|
0
|
3,650
|
21 Enero 2015, 10:59 am
por Iluminadora
|
|
|
MOVIDO: [Python]Generador de contraseñas
Programación General
|
Eleкtro
|
0
|
2,057
|
21 Enero 2015, 12:44 pm
por Eleкtro
|
|
|
Generador de contraseñas redes wifi (Creadas por ISP/Router)
Hacking Wireless
|
marcos raketsky
|
0
|
3,533
|
16 Marzo 2016, 21:39 pm
por marcos raketsky
|
|