Cifrado y descifrado de frases en inglés mediante cifrado César
Como uno de los sistemas de cifrado simétrico más antiguos, su idea básica es:
El cifrado y descifrado se logran cambiando las letras en un cierto número de dígitos.
Por ejemplo, si la clave es cambiar el número de letras de texto sin formato en tres, entonces la letra de texto sin formato B se convierte en el texto cifrado e, y así sucesivamente, X se convierte en A, Y se convierte en B y Z se convierte en c. De esta manera, el número de dígitos es la clave para cifrar y descifrar el cifrado César.
Por ejemplo: ZHDUHVWXGHQWV (los últimos tres dígitos)
2. Cifrado César,
Es programación en lenguaje C de computadora para implementar cifrado y descifrado. Muy complicado. Puedes investigarlo.
2. El proceso de cifrado y descifrado del cifrado César (K=7) está programado en lenguaje C/*
Declaración: Se pasó la prueba del entorno MSVC 6.0.
*/
# incluir ltstdio.h gt
# incluir ltctype.h gt
#Definir maxlen 100
#Definición K 7
Char *KaisaEncode(char *str)//Cifrado
{
char * d0
d0 = cadena
for(;*str!='\0';str)
{
if(isupper(*str))
* str =(* str-' A ' K) 26 ' A ';
else if(islower(*str))
* str =(* str -' a ' K) 26 ' a ';
Otros
Continuar;
}
Volver a d0;
}
Char *KaisaDecode(char *str)//Descifrado
{
char * d0
d0 = str
for(;*str!='\0';str)
{
if(isupper(*str))
* str =(* str-' A '-K 26) 26 ' A ';
else if(islower(*str))
* str =(* str - ' a '-K 26) 26 ' a ';
Otro
Continuar;
}
Volver a d0;
}
int main(void)
{
char s[maxlen];
Obtener;
puts(KaisaEncode(s));
puts(KaisaDecode(s));
Devuelve 0;
}
3. El proceso de cifrado y descifrado del cifrado Caesar X está programado en lenguaje C.
(2)2) Programa específico del algoritmo de cifrado de Kaiser: # include # include char encrypt(charch, int n)/*Función de cifrado, rotar caracteres a la derecha por n */{ while (ch gt; = ' A ' amp ampch = ' a ' amp ampch lt= ' z '){ return(' a ' (ch-' a ' n) 26 } return ch } void menu()/* menú, 1. Cifrado, 2. Descifrado, 3. Cracking por fuerza bruta, la contraseña solo puede ser números */{ clrscr(); \ n = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ";printf("\n1. Archivo cifrado"); printf("\n2. Archivo descifrado"); printf("\n3. Descifrado forzado del archivo" ) ;printf("\n4.
Salir\n "); printf(" = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = \ n "); printf ("Seleccione uno: "); return; } main() { int i, n; char ch0, ch 1; file *in, * outchar infile[20 ], archivo de salida [20]; fondo de texto (negro); color de texto (verde claro); clr SCR(); /*espera 3 segundos*/menú(); ' 4 '){ if(ch0 == ' 1 '){ clrscr(); printf("\nPor favor ingrese infile: "); /if ((in = fopen (infile, " r)) = = null){ printf("¡No se puede abrir el archivo!\n "); printf("¡Presione cualquier tecla para salir!\n"); getch( ); salir (0 } printf ("Ingrese la clave: "); scanf ("d ", ampn); /*Ingrese la contraseña de cifrado */ printf ("Ingrese el archivo de salida: "); );/*Ingrese el nombre del archivo cifrado*/if ((out = fopen ("archivo de salida", w))== null){ printf("¡No se puede abrir el archivo de salida!\n "); ¡Clave para salir!\n "); fclose(in); getch(); exit(0); } while(!feof(in))/* cifrado */{ fputc(encrypt(fgetc(in), n), fuera );} printf(" \ n cripta termina!\ n "); fclose(in); fclose(out(1);} if(ch0 == ' 2 '){ clrscr(); \ nPor favor ingrese infile: "); scanf ("s ", infile); /* Ingrese el nombre del archivo a descifrar */if ((in = fopen (infile, " r)) = = null) { printf ("No se puede presione Abrir archivo!\n "); printf("¡Presione cualquier tecla para salir! \ n "); getch(); exit (0); } printf ("Ingrese la clave: "); scanf ("d ", ampn); /* Ingrese la contraseña de descifrado (puede ser una contraseña cifrada) */ n = 26-n; printf ("Ingrese el archivo de salida: "); scanf ("s ", archivo de salida /* Ingrese el nombre del archivo descifrado */if ((out = fopen (archivo de salida, " w))) = = null ){ printf("¡No se puede abrir el archivo de salida! \ n "); printf("¡Presione cualquier tecla para salir!\ n "); getch(); (in) ){ fputc(encrypt(fgetc(in), n), out);} printf("\n¡Descifrado finalizado!\n"); fclose(in); (ch0 = = '3'){
clrscr();printf("\nPor favor ingrese infile:");scanf("s",infile);/*Ingrese el nombre del archivo a descifrar*/if ((in = fopen (infile, "r))== null){ printf("¡No se puede abrir el archivo!\n "); printf("¡Presione cualquier tecla para salir!\n"); getch();} printf("Ingrese el archivo de salida:"); ("s", archivo de salida);/*Ingrese el nombre del archivo descifrado*/if ((out = fopen (archivo de salida, "w))== null){ printf("¡No se puede abrir el archivo de salida!\n "); printf ("¡Presione cualquier tecla para salir! \ n "); fclose(in); getch(); exit (0); que la información es correcta, puede presionar 'q' o 'q' para salir */{ rewind(in); clr SCR(); = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = n "); printf(" el archivo de salida es: \ n " ; printf(" = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =); = = n "); while (!feof(in)){ ch 1 = encrypt(fgetc(in), 26-I); putch(ch 1); fputc(ch1, out); } printf(" \n = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = n "); printf ("La clave actual es: d \n ", I); /*Muestra la contraseña utilizada actualmente para descifrar*/printf ("Presiona 'q' para salir, presiona otras teclas para continuar) p>
\ n "); printf(" = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = n "); ch 1 = getch(); if(ch 1 = ' q ' | | ch 1 = ' q ')/* Presione ' q ' o ' q 'Salir */{ clrscr( ); printf("\n¡Adiós! \ n "); fclose(in); fclose(out); dormir (3); salir (0); } } printf(" \ n¡El descifrado forzado ha finalizado!\ n "); fclose(in); fclose(out ) ; dormir(1); } menú(); ch0 = getch(); } clr SCR();
4. Cómo escribir un programa: use el siguiente programa para implementar la palabra cifrada con contraseña de César "julus": cree un nuevo texto, ingrese cualquier palabra, establezca el valor en #define N 5 e implemente. cambio de letras, lograr propósitos de cifrado.
Este programa proporciona la función de descifrado/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *. ! */*Algoritmo: Sistema de cifrado César e 799 be 5b a5 baa 6 e4b 893 e5b 19e 31333264643062 */* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * incluir # definir N 5 void jiami(char nombrea[256]){ ARCHIVO * FP _ jiami, * fp _ file2char c; , " WB "); while (EOF! = (fscanf (fp_jiami, " c ", ampc))) { if ((c gt; = ' A ' amp ampc = ' a ' amp ampc = ' A ' amp ampc = ' a ' amp ampc = ' a ' amp ampc = ' A ' amp ampc = ' a ' amp ampc = ' A ' amp ampc = ' a ' amp ampc = ' A ' amp ampc lt= ' Z ' )c = c 32 ;} fprintf(fp_file3, " c ", c); } f close(FP _ archivo 3); fclose(FP _ de miel); ingrese el texto TXT que desea operar: "); Obtener (nombre); printf (" \ nSeleccione la operación a realizar: \ n "); Printf (" 1: Cifrado 2: Descifrar \ n "); Printf ( "Ingrese su elección: "); scanf("d", ampn); switch(n){ caso 1: { jiami(nombre); printf("\tCifrado exitoso!!\n\n"); Dos: {Decrypt(name); printf("\t¡¡Descifrado exitoso!!\n\n");Break;}Predeterminado: {printf("¡La operación de entrada no existe!");}}Devuelve 0;}.
5. ¿Quién tiene el código de cifrado y descifrado del cifrado César escrito por PYTHON y puede escribir uno por usted?
def convert(c, clave, inicio = 'a ', n = 26):
a = orden(inicio)
desplazamiento = ((ord (c) - una clave)n)
Return chr(un desplazamiento)
def caesarEncode(s, clave):
o = " " p>
Para c en s:
si c.islower():
o = convert(c, clave, ' a ')
elif c.isupper():
o = convert(c, key, ' A ')
En caso contrario:
o = c p>
Return o
def caesardecade(s, key):
Return caesarEncode(s, -key)
if __name__ == '__main__ ':
clave = 3
¡Hola mundo!
e = caesarEncode(s, clave)
d = caesardecade(e, clave)
Imprimir e
Imprimir d p>
Resultados de la ejecución:
Khoor zruog!
¡Hola mundo!