he logrado crear un sencillo sistema de cifrado.
Bueno... la cifrado es algo loca, pero la pueden modificar a su gusto.
Me gustaría que me dieran consejos de como podría mejor este código.
Que cosas hize de más, o que le falta.
¿Estoy usando mucho código innecesario?
PD: Solo cifra palabras en minusculas, y solo acepta espacios como separador.
Aquí les dejo el codigo:
Código
#include <iostream>
#include <windows.h>
#include <vector>
#include <string>
#include <sstream>
using namespace std;
vector<string> AddNumbers(vector<string> vector){
vector.push_back("cml29");
vector.push_back("mpdo1");
vector.push_back("cp3p");
vector.push_back("maT4");
vector.push_back("88gk");
vector.push_back("29f");
vector.push_back("9fff");
vector.push_back("fj239");
vector.push_back("fj33f");
vector.push_back("f888");
vector.push_back("45fc");
vector.push_back("d892");
vector.push_back("cronq");
vector.push_back("you");
vector.push_back("llnever");
vector.push_back("know");
vector.push_back("this");
vector.push_back("encr");
vector.push_back("ipta");
vector.push_back("tion");
vector.push_back("lol");
vector.push_back("rf8");
vector.push_back("l28");
vector.push_back("66");
vector.push_back("d6");
vector.push_back("e79d");
vector.push_back("49jf");
return vector;
}
vector<string> AddLetters(vector<string> vector){
vector.push_back("a");
vector.push_back("b");
vector.push_back("c");
vector.push_back("d");
vector.push_back("e");
vector.push_back("f");
vector.push_back("g");
vector.push_back("h");
vector.push_back("i");
vector.push_back("j");
vector.push_back("k");
vector.push_back("l");
vector.push_back("m");
vector.push_back("n");
vector.push_back("o");
vector.push_back("p");
vector.push_back("q");
vector.push_back("r");
vector.push_back("s");
vector.push_back("t");
vector.push_back("u");
vector.push_back("v");
vector.push_back("w");
vector.push_back("x");
vector.push_back("y");
vector.push_back("z");
vector.push_back(" ");
return vector;
}
class CODSYS{
public:
vector<string> abc;
vector<string> nums;
CODSYS(){
abc = AddLetters(abc);
nums = AddNumbers(nums);
}
};
vector<string> PartirString(string a){
vector<string> vector;
string word;
stringstream stream(a);
while( getline(stream, word, 'x'))
vector.push_back(word);
return vector;
}
string descifrar(string a){
CODSYS *dat = new CODSYS;
vector<string> numeros;
// vector<string>::iterator it;
string numeroactual;
string descifrado;
numeros = PartirString(a); // Se eliminan las "x" y se guarda cada número como un elemento del vector.
for(unsigned int i = 0; i < numeros.size(); i++){
numeroactual = numeros[i];
for(unsigned int z = 0; z < dat->nums.size(); z++){
if(numeroactual == dat->nums[z]){
descifrado += dat->abc[z];
break;
}
}
}
delete dat;
return descifrado;
}
string cifrar(string a){
CODSYS *dat = new CODSYS;
string letraactual;
string cifrado;
for(unsigned int i = 0; i < a.length(); i++){
letraactual = a[i];
for(unsigned int z = 0; z < dat->abc.size(); z++){
if(letraactual == dat->abc[z]){
cifrado += dat->nums[z];
cifrado += "x";
}
}
}
delete dat;
return cifrado;
}
void EncMain(){
system("cls");
string cadena;
cout << "Ingresa una Cadena para encriptarla:\n";
getline(cin, cadena);
cout << "\n\n= " << cifrar(cadena) << "\n\n" ;
system("PAUSE");
system("CLS");
}
void DesencMain(){
system("cls");
string cadena;
cout << "Ingresa una Cadena para desencriptarla:\n";
getline(cin, cadena);
cout << "\n\n= " << descifrar(cadena) << "\n\n";
system("PAUSE");
system("CLS");
}
int main(int argc, char *argv[]){
while(true){
string dec;
r:
cout << "==> Encriptador por mastersuv v0.1 <==\n\n";
cout << "---- Selecciona una opcion: ----\n";
cout << "|| ||\n";
cout << "|| 1. cifrar una Cadena ||\n";
cout << "|| 2. descifrar una Cadena ||\n";
cout << "|| ||\n";
cout << "--------------------------------\n\n> ";
getline(cin, dec);
for(unsigned int i = 0; i < dec.length(); i++){
if(!isdigit(dec[i])){
MessageBoxA(NULL, "Ingrese solo numeros!", "Error!", MB_OK);
system("CLS");
goto r;
break;
}
else if((dec > "2" || dec < "1")){
MessageBoxA(NULL, "Opción inválida", "Error!", MB_OK);
system("CLS");
goto r;
break;
}
else{ continue; }
}
if(dec == "1"){
EncMain();
}
else if(dec == "2"){
DesencMain();
}
}
return 0;
}


 
  




 Autor
 Autor
		



 En línea
									En línea
								


 no se pero no me parece
 no se pero no me parece
 No se dijo que fuera basura... se dijo que se pueden mejorar bastante.
 No se dijo que fuera basura... se dijo que se pueden mejorar bastante.


 
						