Advertisement
nasho97

Mod2Cuest1Preg1

Aug 28th, 2017
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.76 KB | None | 0 0
  1. //Ignacio Alejandro Ruiz Garrido
  2. //27 de agosto
  3. //Contraseña segura
  4. //Verificar si un contraseña cumple con los requisitos requeridos
  5.  
  6. #include  <stdio.h>
  7.  
  8. int main()
  9. {
  10.     unsigned short Cant=0;                                          //Variable para guardar la cantidad de dígitos de la contraseña
  11.     unsigned short i=0;                                             //Variable que se usa para recorrer el vector
  12.     unsigned short flag=1;                                          //Para delatar si la pass, está mal
  13.     unsigned short num=0;                                           //Contador de la cantidad de números
  14.     unsigned short simb=0;                                          //Contador de la cantidad de símbolos
  15.     unsigned short mayus=0;                                         //Contador de la cantidad de mayúsculas
  16.     unsigned short minus=0;                                         //Contador de la cantidad de minúsculas
  17.    
  18.    
  19.     scanf ("%hu",&Cant);                                            //Se pide la cantidad de dígitos de la contraseña
  20.    
  21.     if (Cant>=8)                                                    //Solo entra en caso que cumpla con la primera condición, que la cantidad sea mayor a -->
  22.     {                                                               //--> o igual a 8
  23.         char pass [Cant+1];                                         // Se crea el vector en relación al tamaño ya dado, así no se malgasta espacio
  24.        
  25.         scanf ("%s",pass);                                          //Se lee la contraseña
  26.          
  27.         for (i=0;i<Cant;i++)                                        //Como ya se sabe que tiene por lo menos 8 carácteres. Se revisa cada casilla
  28.         {                                                           //para saber si cumple con las condiciones, al menos uno de las 4 cosas, de no ser así
  29.                                                                     //se rompe directamente el ciclo y se le asigna a flag 0 (falso) para después confirmarlo por pantalla fuera.
  30.             if ((pass[i]=='#')||(pass[i]=='$')||(pass[i]=='%')||(pass[i]=='&')||(pass[i]=='*')||(pass[i]==',')||(pass[i]==';')||(pass[i]==':')||(pass[i]=='.')||(pass[i]=='?')||(pass[i]=='@')||(pass[i]=='~'))
  31.             {
  32.                 simb++;
  33.             }
  34.             else if ((pass[i]<='9')&&(pass[i]>='0'))
  35.             {
  36.                 num++;
  37.             }
  38.             else if ((pass[i]<='Z')&&(pass[i]>='A'))
  39.             {
  40.                 mayus++;
  41.             }
  42.             else if ((pass[i]<='z')&&(pass[i]>='a'))
  43.             {
  44.                 minus++;
  45.             }  
  46.             else
  47.             {
  48.                 flag=0;
  49.                
  50.                 break;
  51.             }
  52.         }
  53.     }
  54.     if (flag&&simb&&mayus&&minus&&num)                              //Se ve si todas las condiciones se cumplen para tirar por pantalla que, sí las cumple, estas son que
  55.     {                                                               //que al menor haya una carácter de cada tipo, mayúsculas, minúsculas, símbolo y número.
  56.         printf("SI");                                               //Y finalmente se imprime que sí, indicando que está bien la pass
  57.     }    
  58.     else                                                            //De caso contrario, se informa que no está correcta la pass, por no cumplir las condiciones
  59.     {
  60.         printf("NO");
  61.     }
  62.    
  63.     return 0;                                                       //Termina el programa.
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement