Autor
|
Tema: [aporte]c++ cifrar/descifrar archivos comando (Leído 4,135 veces)
|
daryo
|
#include <iostream> #include <string> #include <cstring> #include <fstream> using namespace std; void ayuda() { cout << "formato: cifrar.exe parametro \"archivo a cifrar\" \"archivo cifrado\"" << endl; cout << "parametros:"<< endl << "-c cifrar" << endl << "-d descifrar" << endl; } int main(int argc,char *argv[]) { if(argc==4) { char *buf; int tamano; int n=1; char letra; ifstream archivo(argv[2],ios::binary); if(archivo.fail()) { cout << "no fue posible abrir el archivo"<< endl; return 1; } //----------------------------- archivo.seekg(0,ios::end); tamano=archivo.tellg(); //encuentro el tamano del archivo archivo.seekg(0,ios::beg); buf=new char[tamano]; //----------------------------- archivo.read(buf,tamano); archivo.close(); ofstream salida(argv[3],ios::binary); for(int xd=0;xd<tamano;xd++) { { letra=buf[xd]+n; } else if(strcmp(argv [1],"-d")==0) { letra=buf[xd]-n; } else { cout << "parametros erroneos"<<endl; return 1; } salida << letra; if(n>10) { n=1; } n++; } salida.close(); delete [] buf; return 0; } else { ayuda(); } return 0; }
|
|
« Última modificación: 12 Junio 2013, 17:56 pm por daryo »
|
En línea
|
buenas
|
|
|
0xDani
Desconectado
Mensajes: 1.077
|
Con qué estándar y/o compilador te compila esto? : char buf[tamano];
Sé que en C99 se puede, pero no creo recordar que se pudiera en C++. En todo caso, un array estático es normalmente ubicado en la stack. Si tratas de cifrar un archivo de algunos MB, se te puede desbordar la stack y crashear el programa. Saludos.
|
|
|
En línea
|
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!
I code for $$$ Hago trabajos en C/C++ Contactar por PM
|
|
|
daryo
|
Con qué estándar y/o compilador te compila esto? : char buf[tamano];
Sé que en C99 se puede, pero no creo recordar que se pudiera en C++. En todo caso, un array estático es normalmente ubicado en la stack. Si tratas de cifrar un archivo de algunos MB, se te puede desbordar la stack y crashear el programa. Saludos. tienes razon me lo compilo el gcc en codeblocks con windows . lo hice rapido casi con afan luego lo corrijo
|
|
|
En línea
|
buenas
|
|
|
amchacon
Desconectado
Mensajes: 1.211
|
Con qué estándar y/o compilador te compila esto? : char buf[tamano];
Sé que en C99 se puede, pero no creo recordar que se pudiera en C++. En todo caso, un array estático es normalmente ubicado en la stack. Si tratas de cifrar un archivo de algunos MB, se te puede desbordar la stack y crashear el programa. C++ no lo tiene recogido en el estándar, pero tampoco lo prohíbe. Con el Mingw (o g++) te lo compila sin problemas, sin warnings ni nada.
|
|
|
En línea
|
|
|
|
daryo
|
ya correji el programa ahora uso memoria dinamica y es completamente estandar
|
|
« Última modificación: 12 Junio 2013, 17:59 pm por daryo »
|
En línea
|
buenas
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[C#] cifrar/descifrar en AES
.NET (C#, VB.NET, ASP)
|
Mace Windu
|
4
|
18,724
|
20 Diciembre 2010, 04:56 am
por [D4N93R]
|
|
|
[c++] Cifrar y descifrar archivos
Programación C/C++
|
Beakman
|
2
|
18,045
|
5 Diciembre 2016, 17:26 pm
por engel lex
|
|
|
cifrar/descifrar archivos
.NET (C#, VB.NET, ASP)
|
rob1104
|
3
|
7,222
|
1 Julio 2012, 19:41 pm
por Keyen Night
|
|
|
Cómo cifrar los archivos que almacenamos en nuestra computadora
Noticias
|
Mister12
|
0
|
1,853
|
22 Agosto 2013, 21:41 pm
por Mister12
|
|
|
Descifrar/cifrar archivos crypt5 de Whatsapp
Programación General
|
dseoane
|
3
|
11,730
|
31 Marzo 2014, 11:32 am
por segam
|
|