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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


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

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Problema con generador de contraseñas en C
« en: 22 Abril 2021, 13:19 pm »

Buenas.

Me gustaría saber si alguien ayudarme a completar lo que me queda de este programa que lo que va a hacer es mediante consola de comandos (cmd) nombraremos al archivo (en este caso se llama password) y seguido a esto especificaremos en consola lo que queremos que muestre: el número de caracteres que va a tener la contraseña poniendo (-1, -2, -3...) después si queremos que la contraseña sea solamente de letras minúsculas que lo especificaremos con: -n, si son mayúsculas con: -M, si es de números con: -d y luego si queremos utilizar varios de estos al mismo tiempo sería simplemente combinándolos, y si queremos que sea con todos los argumentos con -all. EJEMPLO: Contraseña de 9 caracteres con letras minúsculas y mayúsculas, y además, caracteres especiales: password -9 -Mn -c. Por cierto, al final también me gustaría añadir una función de error, que ya la tengo declarada al principio para que cuando el usuario coloque un parámetro que no existe, que le avise y mediante un printf() le avise de ello, aunque esto es relativamente fácil.

Código que llevo hecho:

password.c

Código
  1. /* Generador de contraseñas por consola -l -Mn -nM -all */
  2.  
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <time.h>
  6. #include <conio.h>
  7.  
  8. void numeros(int);
  9. void letras(int);
  10. void mayusculas(int); //Solo mayúsculas
  11. void minusculas(int); //Solo minúsculas
  12. void letrastodo(int); //Mayúsuculas y minúsculas
  13. void especiales(int); //Solo caracteres especiales
  14. void mayusnumeros(int); //Mayúsculas y números al mismo tiempo
  15. void minusnumeros(int); //Minúsculas y números al mismo tiempo
  16. void mayusminusnumeros(int); //Mayúsculas, minúsculas y números al mismo tiempo
  17. void todo(int); //Todo lo del programa (números, letras...)
  18.  
  19. void error (void); //Si no seleccionas alguno de los parámetros (función error, que hay que hacer al final)
  20.  
  21. char contrasenia[500]; //Se almacena la contraseña con 500 caracteres
  22. char mayus[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  23. char minus[] = "abcdefghijklmnopqrstuvwxyz";
  24. char nums[] = "0123456789";
  25. char caracteres[] = "!@#$^&*?";
  26.  
  27. int main(int argc, char* argv[]){
  28.    srand(time(NULL));
  29.    int longitud;
  30.    char opcion[4];
  31.    char item[4];
  32.    sscanf(argv[1], "%c", item);
  33.  
  34.    if (strcmp(item, "H")==0 || strcmp (item, "H")==0) error();
  35.    scanf(argv[2], "%c", opcion);
  36.  
  37.    longitud = atoi(item);
  38. if (longitud==0) printf("La longitud de la clave no puede ser 0.");
  39.  
  40.  
  41.  
  42. if (argc==3){
  43.  
  44.  
  45.    if (longitud < 5 || longitud < 66){
  46.  
  47.            if ((strcmp(opcion, "all"))==0) todo(longitud);
  48.    if ((strcmp(opcion, "M"))==0) mayusculas(longitud);
  49.    if ((strcmp(opcion, "n"))==0) minusculas(longitud);
  50.    if ((strcmp(opcion, "d"))==0) numeros(longitud);
  51.    if ((strcmp(opcion, "c"))==0) especiales(longitud);
  52.    if ((strcmp(opcion, "Mn")==0) || (strcmp(opcion, "nM"))==0) letrastodo(longitud);
  53.    if ((strcmp(opcion, "Md"))==0 || (strcmp(opcion, "dM"))==0) mayusnumeros(longitud);
  54.    if ((strcmp(opcion, "md"))==0 || (strcmp(opcion, "dm"))==0) minusnumeros(longitud);
  55.    if ((strcmp(opcion, "mdM")==0) || (strcmp(opcion, "mMd"))==0 || ((strcmp(opcion, "dmM")==0) || (strcmp(opcion, "Mmd"))==0))mayusminusnumeros(longitud);
  56.    }
  57.    else error();
  58. }
  59. else error();
  60. }


Diría que me queda poco por hacer, ya que tengo lo que son las declaraciones y los ifs correctamente, pero lo que me quedaría sería si no me equivoco hacer las funciones de las propias letras, numeros, caracteres especiales... Para que se genere la propia contraseña, pero no se cómo hacerlo y he visto algún post en este mismo foro y no me termino de aclarar al respecto, aunque probablemente sea utilizando un switch para cada uno de los argumentos, aún así agradecería que completaseis el código y fueseis explicando más o menos los procedimientos que habéis llevado a cabo. Por cierto, si veis algún error no dudéis en corregírmelo, muchas gracias.


« Última modificación: 22 Abril 2021, 16:51 pm por Minibiru » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Generador de contraseñas
Programación C/C++
..:ALT3RD:.. 6 8,924 Último mensaje 13 Noviembre 2011, 16:44 pm
por ..:ALT3RD:..
[Python]Generador de contraseñas
Scripting
Iluminadora 0 3,468 Último mensaje 21 Enero 2015, 10:59 am
por Iluminadora
Ayuda con generador de contraseñas en python
Scripting
sulcud 4 3,049 Último mensaje 12 Junio 2017, 20:45 pm
por <Trocutor>
Mi primer generador de contraseñas en HTML+JS
Desarrollo Web
C4C3 5 4,321 Último mensaje 4 Agosto 2020, 07:41 am
por #!drvy
Generador de contraseñas
Programación C/C++
Co3 6 3,256 Último mensaje 23 Abril 2021, 19:31 pm
por WHK
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines