Mi programa cifrador de datos. (criptografia).

Iniciado por elkiy, 29 Mayo 2013, 19:09 PM

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

elkiy

Hola bueno queria presentarles el programa que hice que me costo un poco hacerlo, bueno voy a dejar la consigna (por si alguno se quiere entretener haciendolo) y luego como desarrollé el codigo.

Consigna:

Una compania desea transmitir datos a través del telefono, pero le preocupa que sus telefonos puedan estar intervenidos.Todos los datos se transmiten como enteros de cuatro digitos.La compañia le ha pedido a usted que escriba un programa que cifre sus datos, de manera que éstos puedan transmitirse con mas seguridad. su programa debe leer un entero de cuatro digitos introducido por el usuario y cifrarlo de la siguiente manera: reemplace cada digito con (el resultado de sumar 7 al digito) MÓDULO 10. Luego intercambie el primer digito con el tercero, e intercambie el segundo digito con el cuarto.Despues imprima el entero cifrado. Escriba un programa separado que reciba como entrada de un entero de cuatro digitos cifrado, y que lo descifre para formar el numero original.

Cifrador: Main.cpp

Código (cpp) [Seleccionar]
#include <iostream>
using std::cout;
using std::cin;
using std::endl;

int main()
{
int digito1;
int digito2;
int digito3;
int digito4;
int numero;
int resto;

cout << "Ingrese el numero a cifrar:\t";
cin >> numero;
cout << endl;

digito1= numero / 1000;
resto= numero % 1000;
digito2= resto / 100;
resto = resto % 100;
digito3= resto / 10;
resto= resto % 10;
digito4= resto;


digito1= ((digito1 + 7) % 10);
digito2= ((digito2 + 7) % 10);
digito3= ((digito3 + 7) % 10);
digito4= ((digito4 +7 ) % 10);

cout << "Numero cifrado:\t";
cout << digito3 <<digito4 <<digito1 <<digito2 << endl;
cin.get();
cin.get();
return 0;
}


Descifrador: Main.cpp

Código (cpp) [Seleccionar]
#include <iostream>
using std::cout;
using std::endl;
using std::cin;

int main()
{
int digito1;
int digito2;
int digito3;
int digito4;
int numero;
int resto;



cout << "Numero a descrifrar:\t";
cin >> numero;
cout << endl;

digito1= numero / 1000;
resto= numero % 1000;
digito2= resto / 100;
resto= resto % 100;
digito3= resto / 10;
resto = resto % 10;
digito4= resto;

digito2= digito2 - 7;
digito1= digito1 + 3;
digito3= digito3 + 3;
digito4= digito4 + 3;

cout <<"Numero descifrado: \t";
cout <<digito3 << digito4 << digito1 << digito2 << endl;
cin.get();
cin.get();
return 0;
}


BlackM4ster

Por que coges los números como un int y luego haces divisiones y así para separarlos? Declaralos como array y punto que es más optimizado  ;-)
- Pásate por mi web -
https://codeisc.com

elkiy

Cita de: Black Master en 29 Mayo 2013, 19:19 PM
Por que coges los números como un int y luego haces divisiones y así para separarlos? Declaralos como array y punto que es más optimizado  ;-)

hacer lo se hacer asi pero como en el libro no han presentado array, solo por eso lo quise hacer asi :D.

BlackM4ster

- Pásate por mi web -
https://codeisc.com

leosansan

#4
Cita de: Don Olivera en 29 Mayo 2013, 19:23 PM
hacer lo se hacer asi pero como en el libro no han presentado array, solo por eso lo quise hacer asi :D.

Pues muy bien por tí  ;-) ;-) ;-) a pelo, sin arrays. Esta visto que con pocos conocimientos de C/C++, y lo digo también por mí, se pueden hacer cosas interesantes.

Pero entre nosotros, como cuestión practica está bien, pero como método de cifrado no sirve de nada. Al usar un método constante en el cifrado, con la potencia de cálculo de los ordenadores actuales, y en este caso incluso a mano,  se lograría obtener el método seguido en el cifrado con relativa facilidad.

Enhorabuena en todo caso por lo logrado y muchos ánimos para seguir profundizando en este mundillo.

Saluditos!. ... ..


dato000

Congratulaciones, muy bueno, cuando uno lee el enunciado como que se espanta, pero ya que el tema es solo cambio de posiciones y aplicacion de modulos para sacar cada cifra, pues sale más rapido hacerlo en arreglos/arrays, pero viejo, tu metodo funciona bien, congratulaciones, sigue con ese empeño.

Yo retomo a listas, que aún me falta mucho para comenzar a hacer juegos (al menos, tengo que hacer el PONG, Culebrita y Tetris, y los dejare aqui) con allegro, o sdl, no se, algo tiene que salir.