Estoy creando una encriptador en c++ y quisiera saber su opinion haber k les parece y como puedo mejorarlo.
Los numeros con los que se cifra son aleatorios para evitar que alguien tenga una pequeña chuleta con todo el abecedario y lo k coresponde.
Nose demasiado de criptografia, por lo que puede que hayan bastantes fallos logicos.
Bueno aqui esta el codigo.
//Created by STAKEWINNER00
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
//FUNCION QUE GENERA UN NUMERO ALEATORIO
int ran(){
srand((int)time(NULL));
int num;
num = (rand()%50)+1;
}
int num=ran();
//ENCRIPTACION CON EL SISTEMA PROPIO
int CR1 (char mens) {
char letra;
cout << endl << "Mensaje cifrado::";
letra = 'D' + num;
letra = letra + 'D';
cout << letra;
while (mens!=';') {
letra = mens + num;
letra = letra + 'D';
cin >> mens;
cout << letra;
if ((mens<31)&&(mens>0)||(mens>127)) {
cout << ":::";
num=ran();
}
}
cout << endl << endl;
system("PAUSE >> NUL");
}
int RCR1 (char mens) {
char letra;
char nu;
int i=0;
cout << endl << "Mensaje cifrado::";
letra=mens - 'D';
while (nu!='D') {
i++;
cout << 50-i;
system("CLS");
nu = letra - i;
}
cin >> mens;
while (mens!=';') {
letra = mens - 'D';
letra = letra - i;
cin >> mens;
cout << letra;
num=ran();}
cout << endl << endl;
system("PAUSE >> NUL");
}
//ENCRIPTACION CON EL SISTEMA PROPIO CON EL SEGUNDO METODO
int CR1M2 (char mens) {
char letra;
char num2;
num2=1+rand()%(200-1);
cout << endl << "Mensaje cifrado::";
while (mens!=';') {
letra = 'D' + num;
letra = letra + 'D';
cout << letra;
letra = mens + num;
letra = letra + 'D';
letra = letra - num2;
cin >> mens;
cout << letra << num2;
num=1+rand()%(50-1);
}
cout << endl << endl;
system("PAUSE >> NUL");
}
int RCR1M2 (char mens) {
char letra;
char nu;
int i=0;
cout << endl << "Mensaje descifrado::";
while (mens!=';') {
i=0;
letra=mens - 'D';
while (nu!='D') {
i++;
nu = letra - i;
}
nu =NULL;
cin >> mens;
letra = mens - 'D';
letra = letra - i;
cin >> mens;
letra = letra + mens;
cin >> mens;
cout << letra;
}
cout << endl <<endl;
system("PAUSE >> NUL");
}
//ENCRIPTACION Y DESNECRIPTACION EN CESAR
void desencript (char mens, int n) {
char letra;
cout << endl << endl << "Mensaje descifrado::";
while (mens!=';') {
letra=mens-n;
cin >> mens;
cout << letra;
}
cout << endl << endl;
system("PAUSE >> NUL");
}
int encript (char mens, int n) {
char letra;
cout << endl << "Mensaje cifrado::";
while (mens!=';') {
letra=mens+n;
cin >> mens;
cout << letra;
}
cout << endl << endl;
system("PAUSE >> NUL");
}
//MAIN
int main()
{
int opcion;
char mens;
int n;
a:
system("CLS");
cout << "1.cifrar (CESAR)" << endl << "2.descifrar (CESAR)" << endl << "3.cifrar (CR1)" << endl << "4.descifrar (CR1)" <<endl << "5.cifrar (CR1M2)" << endl << "6.descifrar (CR1M2)"<< endl<<endl<<">>";
cin >> opcion;
if ((opcion==1)||(opcion==2)) {
cout << endl<<"NUMERO DE SALTOS-->";
cin >> n;
}
switch(opcion) {
case 1:cout << "MENSAJE-->";cin>>mens;encript(mens,n);goto a;
case 2:cout << "MENSAJE-->";cin>>mens;desencript(mens,n);goto a;
case 3:cout << "MENSAJE-->";cin>>mens;CR1(mens);goto a;
case 4:cout << "MENSAJE-->";cin>>mens;RCR1(mens);goto a;
case 5:cout << "MENSAJE-->";cin>>mens;CR1M2(mens);goto a;
case 6:cout << "MENSAJE-->";cin>>mens;RCR1M2(mens);goto a;
}
}