Está en la página 1de 5

Martínez Maldonado Sebastián Grupo: 1MV1 13/11/2020

Práctica No. 3.2: encriptar una cadena


1. Escribir un programa en Lenguaje C utilizando funciones:
Codificar un programa que encripte un texto.
Deberá incluir un menú para que el usuario elija entre las opciones:
1. Escribir cadena
2. Imprimir la cadena encriptada
3. Des encriptar cadena e imprimir
4. Continuar en el programa o salir de él

 Código

#include <iostream>
#include <string.h>
#include <conio.h>

/*
* El programa será capaz de crear recibir una cadena de texto,
* encriptar esa cadena y, si se desea, des encriptarla un numero
* infinito de veces hasta que se desee salir del programa
*/

using namespace std;

void menu(); //Lista


char * cadenas(char * a); //Funcion encargada de leer la cadena
char * encriptacion(char * a, char * b); //Funcion encargada de encriptar la cadena
char * desencriptado(char * a, char * b); //Funcion encargada de des encriptar la cadena

int main()
{

char cadena[100] = {'\0'}; // Cadena a Encriptar


char cadenaE[100] = {'\0'}; // Cadena Encriptada
char cadenaDE[100] = {'\0'}; // Cadena Des encriptada
char Q = '0';

do
{

menu();
Q = getch();
Martínez Maldonado Sebastián Grupo: 1MV1 13/11/2020

if (Q == '4')
break;

cout << "\n";

switch(Q)
{
case '1':
cadenas (cadena);
break;

case '2':
encriptacion (cadena, cadenaE);
break;

case '3':
desencriptado (cadenaE, cadenaDE);
break;

default: cout << "Elija una opcion de las que se muestran.";


}

cout << "\n\n" << "Presione cualquier tecla para continuar.";


getch();

system("cls");

}while (Q != '4');

return 0;
}

void menu()
{
cout << "Bienvenido Guardador de Secretos" << "\n\n";
cout << "Elige alguna de las siguientes opciones para continuar" << "\n";
cout << "1. Escribir cadena" << "\n";
cout << "2. Encriptar cadena" << "\n";
cout << "3. Des encriptar cadena" << "\n";
cout << "4. Salir del programa" << "\n";
}

char * cadenas (char * a)


{
memset (a, 0, 100); // Borra la anterior cadena introducida
cout << "Escribe la cadena a encriptar: ";
gets(a);
cout << "\n" << "La nueva cadena se ha guardado correctamente.";

}
Martínez Maldonado Sebastián Grupo: 1MV1 13/11/2020

char * encriptacion (char * a, char * b)


{
int x; // Variable de longitud de Cadena
char Restriccion[100] = {'\0'}; // Cadena vacia para limitar

if (!strcmp(a, Restriccion))
{
cout << "No se ha guardado ninguna cadena";
}

else
{
x = strlen(a);

memset(b, 0, 100);

for (int i = 0; i < x; i++)


{
if(a[i] == 'X')
b[i] = 'A';

else if (a[i] == 'x')


b[i] = 'a';

else if(a[i] == 'Y')


b[i] = 'B';

else if (a[i] == 'y')


b[i] = 'b';

else if (a[i] == 'Z')


b[i] = 'C';

else if (a[i] == 'z')


b[i] = 'c';

else if (((a[i] >= 65) && (a[i] <= 90)) || ((a[i] >= 97) && (a[i] <= 122)))
b[i] = a[i] + 3;

else
b[i] = a[i];
}

cout << "La cadena encriptada es: " << b;

cout << "\n\n" << "La nueva cadena encriptada se ha guardado


correctamente.";
}
}
Martínez Maldonado Sebastián Grupo: 1MV1 13/11/2020

char * desencriptado (char * a, char * b)


{
int x; // Variable de longitud de Cadena
char Restriccion[100] = {'\0'}; // Cadena vacia para limitar

if (!strcmp(a, Restriccion))
{
cout << "No se ha encriptado ninguna cadena.";
}

else
{
memset(b, 0, 100);

x = strlen(a);

for (int i = 0; i < x; i++)


{
if(a[i] == 'A')
b[i] = 'X';

else if (a[i] == 'a')


b[i] = 'x';

else if(a[i] == 'B')


b[i] = 'Y';

else if (a[i] == 'b')


b[i] = 'y';

else if (a[i] == 'C')


b[i] = 'Z';

else if (a[i] == 'c')


b[i] = 'z';

else if (((a[i] >= 65) && (a[i] <= 90)) || ((a[i] >= 97) && (a[i] <= 122)))
b[i] = a[i] - 3;

else
b[i] = a[i];
}

cout << "La ultima cadena encriptada es: " << a;


cout << "\n" << "La cadena des encriptada es: " << b;

cout << "\n\n" << "La nueva cadena des encriptada se ha guardado
correctamente.";
}
}
Martínez Maldonado Sebastián Grupo: 1MV1 13/11/2020

 Resultado

También podría gustarte