Advertisement
Guest User

CASICASI X2

a guest
Jun 24th, 2017
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.60 KB | None | 0 0
  1. /// ESTE ES EL NUEVO
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. const int maxF=2;
  5. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  6. typedef struct
  7. {
  8. int id;
  9. char nombre[30];
  10. char domicilio[30];
  11. char localidad[30];
  12. int eliminado; /// Indica 1 o 0 si el cliente fue eliminado.
  13. } stCliente;
  14.  
  15. typedef struct
  16. {
  17. int id_cliente;
  18. char usuario[20];
  19. int pass[2][5];
  20. int eliminado; /// Indica 1 o 0 si el cliente fue eliminado.
  21. } stUsuario;
  22.  
  23. typedef struct
  24. {
  25. int id_Cliente;
  26. char usuario[20];
  27. char pass[10];
  28. } stUsuarioListado;
  29. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  30. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  31. int main()
  32. {
  33. system("color 0B");
  34. /// ESTOS SON LOS ARCHIVOS.
  35. char nombrearchivo[]= "Cliente.dat";
  36. char nombre2[]= "Usuarios.dat";
  37. char nombre3[]= "Listado.dat";
  38.  
  39.  
  40. /// VARIABLES
  41. int opcion=0;
  42. char pass[10];
  43. int matriz_testigo[2][2]= {2,3,-1,1};
  44. float matriz_inversa[2][2]= {0.2,-0.6,0.2,0.4};
  45. int contra[2][5];
  46. int contraEncriptada[2][5];
  47. float contraDesencriptada[2][5];
  48. int i=0;
  49. int cantidad;
  50.  
  51.  
  52. /// MENU
  53. while(opcion!=5)
  54. {
  55. system("cls");
  56. gotoxy(1, 0);
  57. printf("____________________________________\n");
  58. gotoxy(1, 1);
  59. printf("|____________BIENVENIDO____________|\n");
  60. gotoxy(1, 2);
  61. printf("\n");
  62. printf(" 1)Registrarse\n");
  63. gotoxy(1, 4);
  64. printf("2)Iniciar sesion\n");
  65. gotoxy(1, 5);
  66. printf("3)Buscar usuario\n");
  67. gotoxy(1, 6);
  68. printf("4)Mostrar clientes\n");
  69. gotoxy(1, 7);
  70. printf("5)Salir\n");
  71. gotoxy(1, 8);
  72. scanf("%d", &opcion);
  73.  
  74. switch(opcion)
  75. {
  76. case 1:
  77. system("cls");
  78. printf("registro\n");
  79. registrar(nombrearchivo, nombre2);
  80. cantidad=cargar(pass);
  81. numero_letra(pass);
  82. pasarAnumeros(pass,25,contra, cantidad);
  83. printf("Matriz contra:\n");
  84. mostrarMatriz(contra);
  85.  
  86. encriptar(matriz_testigo,contra,contraEncriptada, nombre2);
  87. mostrarGuardada(nombre2);
  88. printf("Matriz contraEncriptada:\n");
  89. mostrarMatrizEncriptada(contraEncriptada, nombre2);
  90.  
  91. desencriptar(matriz_inversa,contraEncriptada,contraDesencriptada);
  92. printf("Matriz contraDesencriptada:\n");
  93. mostrarMatrizDesencriptada(contraDesencriptada);
  94. system("pause");
  95. break;
  96. case 2:
  97. system("cls");
  98. printf("Aca podra iniciar sesion\n");
  99. system("pause");
  100. break;
  101. case 3:
  102. system("cls");
  103. printf("Buscar usuario\n");
  104. system("pause");
  105. break;
  106. case 4:
  107. system("cls");
  108. printf("mostrar todos\n");
  109. system("pause");
  110. break;
  111. case 5:
  112. system("cls");
  113. printf("Hasta luego!\n");
  114. break;
  115. }
  116. }
  117. return 0;
  118. }
  119. /// FUNCIONES
  120.  
  121. void registrar (char cliente[], char usuario[]) /// FUNCION PARA REGISTRARSE
  122. {
  123. stCliente c;
  124. stUsuario u;
  125.  
  126. /// ARCHIVO ES PARA CLIENTES | nombrearchivo | Cliente.dat
  127. /// ARCHI ES PARA USUARIOS | nombre2 | Usuario.dat
  128. /// ARCHIVITO ES PARA USUARIOS LISTADO | nombre3 | Listado.dat
  129.  
  130. /// ACA SE REGISTRA PIDIENDO SUS DATOS PERSONALES
  131. FILE * archivo = fopen(cliente, "ab");
  132. if (archivo==NULL)
  133. {
  134. archivo = fopen(cliente, "wb");
  135. }
  136. if (archivo!=NULL)
  137. {
  138.  
  139. printf("Ingrese nombre:\n");
  140. fflush(stdin);
  141. gets(c.nombre);
  142. printf("\n");
  143.  
  144. printf("Ingrese su domicilio:\n");
  145. fflush(stdin);
  146. gets(c.domicilio);
  147. printf("\n");
  148.  
  149. printf("Ingrese su localidad:\n");
  150. fflush(stdin);
  151. gets(&c.localidad);
  152. printf("\n");
  153.  
  154. fseek(archivo, 0, SEEK_END);
  155. c.id=ftell(archivo)/sizeof(stCliente);
  156. printf("Su ID sera la numero: %d\n", c.id);
  157.  
  158. fwrite(&c, sizeof(stCliente), 1, archivo);
  159. }
  160. fclose(archivo);
  161.  
  162. /// ACA LE PIDE USUARIO
  163.  
  164. FILE * archi = fopen(usuario, "ab");
  165. if (archi==NULL)
  166. {
  167. archi = fopen(usuario, "wb");
  168. }
  169. if (archi!=NULL)
  170. {
  171. printf("Ingrese su nombre de usuario:\n");
  172. fflush(stdin);
  173. gets(u.usuario);
  174.  
  175. fseek(archi, 0, SEEK_END);
  176. u.id_cliente=ftell(archi)/sizeof(stUsuario);
  177. fwrite(&u, sizeof(stUsuario), 1, archi);
  178. }
  179. fclose(archi);
  180. }
  181. int numero_letra(char letra[])
  182. {
  183. char abc[]= {' ','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
  184. int i=0;
  185. while(i<=26)
  186. {
  187. if(letra==abc[i])
  188. {
  189. return i;
  190. }
  191. i++;
  192. }
  193. }
  194. void pasarAnumeros(char pass[],int cant_letras,int contra[][5], int cantidad)
  195. {
  196. int j=0;
  197. int k=0;
  198. int i=0;
  199. for(k=0; k<5; k++)
  200. {
  201. for(j=0; j<2; j++)
  202. {
  203. if(i<cantidad)
  204. {
  205. contra[j][k]=numero_letra(pass[i]);
  206. }
  207. else
  208. {
  209. contra[j][k]=0;
  210. }
  211. i++;
  212. }
  213. j=0;
  214. }
  215. }
  216.  
  217. int cargar (char pass[])
  218. {
  219. printf("Ingrese su contrasenia:\n ");
  220. gets(pass);
  221. int cantidad=0;
  222. cantidad=strlen(pass);
  223. return cantidad;
  224. }
  225. void mostrarMatriz(int contra[][5])
  226. {
  227. int i=0;
  228. int j=0;
  229.  
  230. for (i=0; i<2; i++)
  231. {
  232. printf ("(");
  233. for (j=0; j<5; j++)
  234. {
  235. printf(" %d ", contra[i][j]);
  236. }
  237. printf(")\n");
  238. }
  239. }
  240. void encriptar(int matriz_testigo[][2], int contra[][5],int contraEncriptada[][5], char usuario[])
  241. {
  242. stUsuario aux;
  243. FILE * archivo = fopen(usuario, "ab");
  244. if(archivo!=NULL)
  245. {
  246. ///-------------------------------------------(Primera fila)----------------------------------------///
  247. contraEncriptada[0][0]=(matriz_testigo[0][0]*contra[0][0])+(matriz_testigo[0][1]*contra[1][0]);
  248. contraEncriptada[0][1]=(matriz_testigo[0][0]*contra[0][1])+(matriz_testigo[0][1]*contra[1][1]);
  249. contraEncriptada[0][2]=(matriz_testigo[0][0]*contra[0][2])+(matriz_testigo[0][1]*contra[1][2]);
  250. contraEncriptada[0][3]=(matriz_testigo[0][0]*contra[0][3])+(matriz_testigo[0][1]*contra[1][3]);
  251. contraEncriptada[0][4]=(matriz_testigo[0][0]*contra[0][4])+(matriz_testigo[0][1]*contra[1][4]);
  252. ///-------------------------------------------(Segunda fila)----------------------------------------///
  253. contraEncriptada[1][0]=(matriz_testigo[1][0]*contra[0][0])+(matriz_testigo[1][1]*contra[1][0]);
  254. contraEncriptada[1][1]=(matriz_testigo[1][0]*contra[0][1])+(matriz_testigo[1][1]*contra[1][1]);
  255. contraEncriptada[1][2]=(matriz_testigo[1][0]*contra[0][2])+(matriz_testigo[1][1]*contra[1][2]);
  256. contraEncriptada[1][3]=(matriz_testigo[1][0]*contra[0][3])+(matriz_testigo[1][1]*contra[1][3]);
  257. contraEncriptada[1][4]=(matriz_testigo[1][0]*contra[0][4])+(matriz_testigo[1][1]*contra[1][4]);
  258.  
  259. ///-------------------------------------------(Primera fila)----------------------------------------///
  260. aux.pass[0][0]=(matriz_testigo[0][0]*contra[0][0])+(matriz_testigo[0][1]*contra[1][0]);
  261. aux.pass[0][1]=(matriz_testigo[0][0]*contra[0][1])+(matriz_testigo[0][1]*contra[1][1]);
  262. aux.pass[0][2]=(matriz_testigo[0][0]*contra[0][2])+(matriz_testigo[0][1]*contra[1][2]);
  263. aux.pass[0][3]=(matriz_testigo[0][0]*contra[0][3])+(matriz_testigo[0][1]*contra[1][3]);
  264. aux.pass[0][4]=(matriz_testigo[0][0]*contra[0][4])+(matriz_testigo[0][1]*contra[1][4]);
  265. ///-------------------------------------------(Segunda fila)----------------------------------------///
  266. aux.pass[1][0]=(matriz_testigo[1][0]*contra[0][0])+(matriz_testigo[1][1]*contra[1][0]);
  267. aux.pass[1][1]=(matriz_testigo[1][0]*contra[0][1])+(matriz_testigo[1][1]*contra[1][1]);
  268. aux.pass[1][2]=(matriz_testigo[1][0]*contra[0][2])+(matriz_testigo[1][1]*contra[1][2]);
  269. aux.pass[1][3]=(matriz_testigo[1][0]*contra[0][3])+(matriz_testigo[1][1]*contra[1][3]);
  270. aux.pass[1][4]=(matriz_testigo[1][0]*contra[0][4])+(matriz_testigo[1][1]*contra[1][4]);
  271.  
  272. fwrite(&aux, sizeof(stUsuario), 1, archivo);
  273. }
  274. fclose(archivo);
  275. }
  276. void mostrarGuardada (char usuario[])
  277. {
  278. int i=0;
  279. int j=0;
  280. stUsuario u;
  281. FILE * archivo = fopen(usuario, "rb");
  282. printf("\nESTA ES LA CONTRASENIA EN EL ARCHIVO:\n");
  283. if(archivo!=NULL)
  284. {
  285. while(fread(&u, sizeof(stUsuario), 1, archivo)>0)
  286. {
  287. printf("\n----------------------\n");
  288. interfazGuardada(u);
  289. printf("\n----------------------\n");
  290. }
  291. }
  292. fclose(archivo);
  293. }
  294. void interfazGuardada(stUsuario u)
  295. {
  296. int i=0;
  297. int j=0;
  298. for(i=0; i<2; i++)
  299. {
  300. printf("(");
  301. for(j=0; j<5; j++)
  302. {
  303. printf(" %d ", u.pass[i][j]);
  304. }
  305. printf(")\n");
  306. }
  307. }
  308. void mostrarMatrizEncriptada(int contraEncriptada[][5])
  309. {
  310. int i=0;
  311. int j=0;
  312.  
  313. printf("CONTRASENIA SIN GUARDAR:\n");
  314. for (i=0; i<2; i++)
  315. {
  316. printf ("(");
  317. for (j=0; j<5; j++)
  318. {
  319. printf(" %d ", contraEncriptada[i][j]);
  320. }
  321. printf(")\n");
  322. }
  323.  
  324. }
  325. void desencriptar(float matriz_inversa[][2], int contraEncriptada[][5], float contraDesencriptada [][5])
  326. {
  327. ///-------------------------------------------------------------(Primera fila)----------------------------------------------------------///
  328. contraDesencriptada[0][0]=(matriz_inversa[0][0]*(float)contraEncriptada[0][0])+(matriz_inversa[0][1]*(float)contraEncriptada[1][0]);
  329. contraDesencriptada[0][1]=(matriz_inversa[0][0]*(float)contraEncriptada[0][1])+(matriz_inversa[0][1]*(float)contraEncriptada[1][1]);
  330. contraDesencriptada[0][2]=(matriz_inversa[0][0]*(float)contraEncriptada[0][2])+(matriz_inversa[0][1]*(float)contraEncriptada[1][2]);
  331. contraDesencriptada[0][3]=(matriz_inversa[0][0]*(float)contraEncriptada[0][3])+(matriz_inversa[0][1]*(float)contraEncriptada[1][3]);
  332. contraDesencriptada[0][4]=(matriz_inversa[0][0]*(float)contraEncriptada[0][4])+(matriz_inversa[0][1]*(float)contraEncriptada[1][4]);
  333. ///-------------------------------------------------------------(Segunda fila)----------------------------------------------------------///
  334. contraDesencriptada[1][0]=(matriz_inversa[1][0]*(float)contraEncriptada[0][0])+(matriz_inversa[1][1]*(float)contraEncriptada[1][0]);
  335. contraDesencriptada[1][1]=(matriz_inversa[1][0]*(float)contraEncriptada[0][1])+(matriz_inversa[1][1]*(float)contraEncriptada[1][1]);
  336. contraDesencriptada[1][2]=(matriz_inversa[1][0]*(float)contraEncriptada[0][2])+(matriz_inversa[1][1]*(float)contraEncriptada[1][2]);
  337. contraDesencriptada[1][3]=(matriz_inversa[1][0]*(float)contraEncriptada[0][3])+(matriz_inversa[1][1]*(float)contraEncriptada[1][3]);
  338. contraDesencriptada[1][4]=(matriz_inversa[1][0]*(float)contraEncriptada[0][4])+(matriz_inversa[1][1]*(float)contraEncriptada[1][4]);
  339. }
  340. void mostrarMatrizDesencriptada(float contraDesencriptada[][5])
  341. {
  342. int i=0;
  343. int j=0;
  344.  
  345. for (i=0; i<2; i++)
  346. {
  347. printf ("(");
  348. for (j=0; j<5; j++)
  349. {
  350. printf(" %0.f ", contraDesencriptada[i][j]);
  351. }
  352. printf(")\n");
  353. }
  354. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement