Tecnología

Inicio

Cómo crear un sistema de cifrado en C

Cómo crear un sistema de cifrado en C


Un sistema de cifrado es un tipo simple de código que reemplaza cada letra del mensaje secreto con un símbolo o carácter específico. Uno de los más conocidos es el cifrado César, que simplemente avanza el alfabeto un número determinado de letras, de modo que A es B y B es C, o A es H y B es N, dependiendo de lo lejos que cambiarlo. Mediante la manipulación de valores ASCII, puede escribir fácilmente un programa en C que puede realizar operaciones como esta para usted sobre la marcha, al instante cifrar cualquier mensaje que usted escribe.

Instrucciones

1 Incluir el archivo de encabezado estándar de entrada / salida y declarar una función de encriptación que toma un entero. Este entero representará el número de letras de cambiar el sistema de cifrado. En un sistema de cifrado con un desplazamiento de 1, A sería B; con un cambio de 2, A sería C y así sucesivamente. Este código preliminar debería tener este aspecto:

incluir <stdio.h>

cifrar void (int letter_shift);

2 Cree la función cifrar (). Esto debe comenzar por declarar una variable de tipo char, que se presentará a la letra que se está codificada o decodificada. Muestra un mensaje en pantalla solicitando el ingreso, y luego guardar esa entrada en la variable de tipo char. Debe ser algo como esto:

cifrar vacío (int letter_shift)

{

char ch;

printf ( "Introduzca el texto para cifrar:");

ch = getchar ();

3 Escribir un bucle while que examinar el carácter actual y realizar el cifrado. El bucle debe comprobar para ver si el personaje está dentro del rango alfabeto ASCII, sólo se cifrarlo si lo hace, y mover las cartas cerca del final del alfabeto de nuevo al principio. De esta manera un sistema de cifrado con un desplazamiento de 1 hará que Z como A, no como [. El bucle se imprimirá cada letra en pantalla, ya que lo cifra, sólo se detuvo cuando se encuentra con el carácter de nueva línea. Esta segunda parte de la función de cifrar () debe ser similar a la siguiente:

while(ch != '\n')

{

si (isalpha (ch))

{

si (isupper (ch) && isupper (ch + letter_shift) || islower (ch) && islower (ch + letter_shift))

putchar (ch + letter_shift);

más

{

si (letter_shift> 0)

putchar (ch + letter_shift - 26);

más

putchar (ch + letter_shift + 26);

}

}

más

putchar (CH);

ch = getchar ();

}

putchar (CH);

}

4 Crear la función main () que se inicia y termina la operación del programa. Esto debe declarar la variable letter_shift como un entero, imprimir un mensaje de bienvenida al usuario y preguntar cuántas cartas para cambiar el sistema de cifrado, almacenar la entrada en letter_shift. Si la entrada es más de 26, reducirla mediante el operador módulo para evitar desbordamiento. El programa se cierra al pasar letter_shift para cifrar () y ejecutar la función de una y otra hasta que recibe un carácter de nueva línea. La función principal debería tener este aspecto:

int main (void)

{

int letter_shift;

printf ( "! Bienvenido al cifrador \ Nhow ahora debo cambiar las letras Introduzca un número:?");

scanf ( "% d", y letter_shift);

si (letter_shift> 26)

letter_shift = letter_shift% 26;

si (letter_shift & lt; -26)

letter_shift = letter_shift% -26;

mientras que (getchar () = '\ n'!);

cifrar (letter_shift);

return 0;

}

Consejos y advertencias

  • Puede descifrar un mensaje utilizando la inversa de la de desplazamiento se utiliza para cifrar la misma. "Robots de gobernar bien" codificado con un desplazamiento de 7 es "Yvivaz ybsl VR", mientras que "Yvivaz ybsl VR" codificado con un cambio de -7 es "robots de gobernar bien".