Un simple generador de contraseñas por darkbouser

  • 0 Respuestas
  • 3246 Vistas

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

Desconectado darkbouser

  • *
  • Underc0der
  • Mensajes: 16
  • Actividad:
    0%
  • Reputación 0
  • las cosas pasan porque tienen que pasar
    • Ver Perfil

Un simple generador de contraseñas por darkbouser

  • en: Noviembre 28, 2013, 03:24:58 am
Acabo de hacer un generador de contraseñas de 4 dígitos tomadas como base de una cédula de identidad (documento de identificación en Venezuela) pero puede ser cualquier número de 8 dígitos. Esta elaborado de acuerdo a unas especificaciones que tiene comentado antes de las librerías de C.

Código: (c) You are not allowed to view links. Register or Login

/* Dada una cedula de identidad, genere una clave de cuatro digintos, formada de acuerdo a las siguientes reglas:
 1) El digito de las unidades en la clave sera el digito menos significativo del resultado de sumar los digitos mas y menos
 significativos de la cedula de identidad.
  2) El digito de las decenas en la clave sera el resto de dividir entre 9 a la suma de todos los digitos de la cedula
3) El digito de las centenas de la clave sera el resto de dividir entre 7 a la suma de los digitos pares exisitentes en la cedula
 4) El digito de las unidades de mil en la clave será el digito mas significativo del resultado obtenido al multiplicar
 todos los digitos, diferentes de cero, de la cedula de identidad */
 #include <stdio.h>
 #include <stdlib.h>
 
 
 void cedula(int ci[10])
 {
  for(int i=1; i <= 8; i++)
  {
  printf("\n Ingrese el %i numero de la ci\n", i);
  scanf("%i", &ci[i]);
  }
 }
 
 void Mostrar(int ci[10])
 {
 
   printf("\n La cedula de indentidad ingresada es:\n");
   for(int i =1; i <= 8; i++)
   {
    printf("%i", ci[i]);
   }
   printf("\n");
   system("pause");
 }
 
 void unidades(int ci[10], int *uni)
 {
  *uni = ci[1] + ci[8];
 }
 
 void decena(int ci[10], int *dec)
 {
   int aux=0;
   for(int i=1; i <= 8; i++)
   {
    aux = aux + ci[i];
   }
   
   *dec = aux % 9;
 }
 
 void centenas(int ci[10], int *cen)
 {
  int aux =0;
 
  for(int i= 1; i <= 8; i++)
  {
  if (ci[i] % 2 == 0)
  {
  aux = aux + ci[i];
  }
  }
 
  *cen = aux % 7;
 }
 
 void UnidadMil(int ci[10], int *um)
 {
 
  int aux = 1;
  int aux2 = 0;
 
  for(int i=1; i <= 8; i++)
  {
  if ( ci[i] != 0)
  {
  aux = aux * ci[i];
  }
  }
 
 
 
  while(aux > 0)
  {
     aux2 = aux % 10;
aux = aux /10; 
  }
 
  //le devuelve a la variable um el valor de la cifra mas significativa
 
  *um = aux2;
 
 
 }
 
 main()
 {
  int ci[10]={0}, uni=0, dec=0, cen=0, um=0;
 
  cedula(ci);
  Mostrar(ci);
  unidades(ci, &uni);
  decena(ci, &dec);
  centenas(ci, &cen);
  UnidadMil(ci, &um);
 
  //se imprime el resultado
 
  printf("\n La contraseña generada es:\n");
  printf("%i%i%i%i",um, cen, dec, uni);
  system("pause");
 
  //FIN DEL PROGRAMA
 }

Saludos.
 
« Última modificación: Febrero 08, 2014, 05:36:35 pm por Expermicid »