Criptografía “κρύπτω krypto, «oculto» + γράφω graphos, «escribir» = «escritura oculta»”Este curioso arte se avoca a cifrar...
cout<<"Ingrese el nombre del archivo a cifrar(sinextension): ";    cin>>archivo_original;    cout<<"Ingrese la extension d...
}     archivo_in.close();     archivo_out.close();    cout<<"nEl archivo ha sido cifradosatisfactoriamenete."<<endl<<endl;...
cout<<"Ingrese la extension del archivo original: ";   cin>>extension;   strcpy(archivo_original,archivo_cifrado);   strca...
archivo_out.close();    cout<<"nEl archivo ha sido descifradosatisfactoriamenete."<<endl<<endl;     system ("PAUSE");     ...
Próxima SlideShare
Cargando en…5
×

criptografiaV1

385 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
385
En SlideShare
0
De insertados
0
Número de insertados
2
Acciones
Compartido
0
Descargas
2
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

criptografiaV1

  1. 1. Criptografía “κρύπτω krypto, «oculto» + γράφω graphos, «escribir» = «escritura oculta»”Este curioso arte se avoca a cifrar y descifrar información mediante técnicasespeciales, con el fin de que un mensaje sólo pueda ser leído por la personaa la que va dirigido.Ahora veremos el desarrollo e implementación de un algoritmo de cifrado enC++, empecemos con esta idea:Vamos a sumar las representaciones numéricas del primer dígito de la clavey el primer dígito del „texto en claro‟ (mensaje legible en la jerga de lacriptografía) obteniendo así el primer dígito del texto cifrado. Este proceso serealiza de igual forma con todos los dígitos del archivo tal y como muestra laimagen:Ahora, vamos a implementar esto en un programa de C++:// CIDESOFT/Fredy Rojas/codificador1.cpp#include<iostream>#include<stdlib.h>#include<string.h>#include<fstream>using namespace std;const int MAXNOMB = 255; //maximo de caracteres para elnombreint main(){ char archivo_original[MAXNOMB]; char extension[10]; char archivo_cifrado[MAXNOMB]; char clave[255]; char car; int ch;
  2. 2. cout<<"Ingrese el nombre del archivo a cifrar(sinextension): "; cin>>archivo_original; cout<<"Ingrese la extension del archivo a cifrar: "; cin>>extension; strcpy(archivo_cifrado,archivo_original); strcat(archivo_original,"."); strcat(archivo_original,extension); strcat(archivo_cifrado,".cifx"); ifstream archivo_in; ofstream archivo_out; archivo_in.open(archivo_original); archivo_out.open(archivo_cifrado); if (archivo_in.fail()) //verificar si se abrio conexito { cout<<"El archivo no se puede abrir con exiton" <<" verifique si el archivo en realidad existen"; system("PAUSE"); exit(1); } if (archivo_out.fail()) //verificar si se creo conexito { cout<<"El archivo no se puede crear con exiton"; system("PAUSE"); exit(1); } cout<<"Ingrese clave: "; cin>>clave; cout<<endl<<endl; int idc; //indice de la ubicacion de la letra de laclave idc=0; int lon; //longitud de la clave lon = strlen(clave)-1; while( ( ch = archivo_in.peek() ) != EOF ) { archivo_in.get(car); car = car + clave[idc]; if( idc == lon ) idc = -1; idc++; archivo_out<<car;
  3. 3. } archivo_in.close(); archivo_out.close(); cout<<"nEl archivo ha sido cifradosatisfactoriamenete."<<endl<<endl; system ("PAUSE"); return 0;}Muy bien, esto ha sido el cifrado, veamos ahora descifrado, ya que essimplemente el proceso inverso, solo les presento la idea y el código:// CIDESOFT/Fredy Rojas/decodificador1.cpp#include<iostream>#include<stdlib.h>#include<string.h>#include<fstream>using namespace std;const int MAXNOMB = 255; //maximo de caracteres para elnombreint main(){ char archivo_original[MAXNOMB]; char extension[10]; char archivo_cifrado[MAXNOMB]; char clave[255]; char car; int ch; cout<<"Ingrese el nombre del archivo a descifrar(sinextension): "; cin>>archivo_cifrado;
  4. 4. cout<<"Ingrese la extension del archivo original: "; cin>>extension; strcpy(archivo_original,archivo_cifrado); strcat(archivo_original,"."); strcat(archivo_original,extension); strcat(archivo_cifrado,".cifx"); ifstream archivo_in; ofstream archivo_out; archivo_in.open(archivo_cifrado); archivo_out.open(archivo_original); if (archivo_in.fail()) //verificar si se abrio conexito { cout<<"El archivo no se puede abrir con exiton" <<" verifique si el archivo en realidad existen"; system("PAUSE"); exit(1); } if (archivo_out.fail()) //verificar si se creo conexito { cout<<"El archivo no se puede crear con exiton"; system("PAUSE"); exit(1); } cout<<"nIngrese clave: "; cin>>clave; cout<<endl<<endl; int idc; //indice de la ubicacion de la letra de laclave idc=0; int lon; //longitud de la clave lon = strlen(clave)-1; while( ( ch = archivo_in.peek() ) != EOF ) { archivo_in.get(car); car = car - clave[idc]; if( idc == lon ) idc = -1; idc++; archivo_out<<car; } archivo_in.close();
  5. 5. archivo_out.close(); cout<<"nEl archivo ha sido descifradosatisfactoriamenete."<<endl<<endl; system ("PAUSE"); return 0;}Este „codificador‟ y „decodificador‟ tratan el archivo a cifrar como un archivode texto, por ello es que solamente pueden cifrar y descifrar archivos de estetipo.Se puede implementar el mismo algoritmo en C++, pero tratando el archivoa cifrar como un archivo binario, esto significa cifrar cada BIT del archivo sinimportar que sea texto o alguna otra codificación, lo que nos permitiría cifrarabsolutamente cualquier tipo de archivo („.txt‟, „.jpg‟, „.mp3‟, „.wmv‟, etc.)¿Quieres saber cómo?, visita:http://cidesoft.com.pe/blogs/integrantes/fredy-rojas-frants/

×