elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Generador de contraseñas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Generador de contraseñas  (Leído 5,797 veces)
..:ALT3RD:..

Desconectado Desconectado

Mensajes: 205


C++ Programmer


Ver Perfil
Generador de contraseñas
« en: 12 Noviembre 2011, 14:34 »

Buenas  :D

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)

Código:
#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 Desconectado

Mensajes: 267



Ver Perfil
Re: Generador de contraseñas
« Respuesta #1 en: 12 Noviembre 2011, 15:19 »

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':

Código
  1. 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 Desconectado

Mensajes: 205


C++ Programmer


Ver Perfil
Re: Generador de contraseñas
« Respuesta #2 en: 12 Noviembre 2011, 15:22 »

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 Desconectado

Mensajes: 267



Ver Perfil
Re: Generador de contraseñas
« Respuesta #3 en: 12 Noviembre 2011, 15:31 »

De nada ::).
En línea

"Intenta no volverte un hombre de éxito, sino volverte un hombre de valor." Albert Einstein.
..:ALT3RD:..

Desconectado Desconectado

Mensajes: 205


C++ Programmer


Ver Perfil
Re: Generador de contraseñas
« Respuesta #4 en: 13 Noviembre 2011, 15:52 »

Aqui esta el codigo completo por si a alguien le interesa:

Código:
#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 Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: Generador de contraseñas
« Respuesta #5 en: 13 Noviembre 2011, 16:42 »

¡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
Código
  1. char mi_letra = (char)((rand() % 26 + 'a') + (rand() % 2) * ('A' - 'a'));
  2.  
Asi si rand() % 2 == 1, generara una mayuscula y si rand() % 2 == 0 sera una letra minuscula.

Minusculas y numeros:
Código
  1. int numero = rand() % 2;
  2. char mi_letra = (char)(rand() % (26 - 16 * numero) + 'a' + numero * ('0' - 'a'));
  3.  
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 Desconectado

Mensajes: 205


C++ Programmer


Ver Perfil
Re: Generador de contraseñas
« Respuesta #6 en: 13 Noviembre 2011, 16:44 »

Gracias por el detalle  ;D
En línea

"Mañana sabrás que hoy no sabes nada"
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Batch] Generador de contraseñas seguras
Scripting
_m 3 3,414 Último mensaje 27 Enero 2009, 17:11
por _m
Google está probando su propio generador y gestor de contraseñas
Noticias
wolfbcn 0 811 Último mensaje 6 Septiembre 2014, 16:52
por wolfbcn
[Python]Generador de contraseñas
Scripting
Iluminadora 0 2,252 Último mensaje 21 Enero 2015, 10:59
por Iluminadora
MOVIDO: [Python]Generador de contraseñas
Programación General
Eleкtro 0 1,039 Último mensaje 21 Enero 2015, 12:44
por Eleкtro
Generador de contraseñas redes wifi (Creadas por ISP/Router)
Hacking Wireless
marcos raketsky 0 1,523 Último mensaje 16 Marzo 2016, 21:39
por marcos raketsky
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines