Programación universitaria, procesamiento de cifrado y descifrado, ayuda!!!!
#include lt; stdio.hgt
#include string.hgt;
typedef struct contraseña /* Método de cifrado*/
{
char ps[10] /* Cadena cifrada*/
long wd; * Número de bytes cifrados*/
}contraseña;
void printtxt(); //muestra el archivo en la pantalla
void encode(); /encriptar
void decode(); //descifrar
void setkey(); //establecer contraseña
void main()
{
printf("************************************\n ") ;
printf("1.Establecer método de cifrado\n");
printf("2. Cifrar\n");
printf( "3 . Descifrar\n");
printf("4.Salir\n");
printf("*************** ***** ************* *****\n");
elección de carácter;
mientras (1)
{
printf("Vuelva a escribir 1~4:");
fflush(stdin);
scanf("c"); , amp; elección)
switch(elección)
{
caso '1':
setkey(); p>
romper;
caso '2':
codificar();
romper
caso '3'; :
decode();
break;
case '4':
printf("¡Gracias por usarlo! ¡Saldremos pronto! \n");
return;
}
}
}
void setkey()
{
ARCHIVO* pfile;
nombre de ruta de caracteres[50];
contraseña pw
fflush( stdin);
p>
printf("Ruta completa de la clave: ");
gets(nombre de ruta
if ((pfile = fopen); (nombre de ruta, "wb")) == NULL)
{
printf("¡Error al abrir el archivo! \n");
Return;
}
printf("Por favor, introduzca la contraseña
: ");
gets(pw.ps);
pw.wd = strlen(pw.ps);
fwrite(pw.ps, 1 , pw.wd, pfile );
printf("¡Clave guardada correctamente!\n");
fclose(pfile); >
codificación nula()
{
ARCHIVO *pfile, *pkey, *pefile
char keypathname[50];
char filepathname[50];
char efilepathname[50];
clave de contraseña
archivo de contraseña
int; i;
fflush(stdin);
printf("Ruta de acceso completa: "
gets(keypathname); if ((pkey = fopen(keypathname, "rb")) == NULL)
{
printf("¡Error al abrir la clave!\n");
Return;
}
fflush(stdin);
printf("Ruta completa del archivo antes del cifrado: "); > obtiene(efilepathname);
if ((pefile = fopen(efilepathname, "wb")) == NULL)
{
printf("Abrir Error de clave! \n");
Retorno;
}
fflush(stdin);
printf("Archivo cifrado El ruta completa de: ");
gets(filepathname);
if ((pfile = fopen( filepathname, "wb")) == NULL)
{
printf("¡Error al abrir el archivo!\n");
Retorno
}
key.wd = fread; (key.ps, 1, 10, pkey);
fflush(stdin);
printf("Ingrese el texto sin formato:
obtiene); (archivo.ps);
archivo.wd = strlen(archivo.ps);
fwrite(archivo.ps, 1, archivo.wd, pefile);
for (i = 0; i ! = archivo.wd; i)
{
archivo.ps[i] = (archivo.ps[i] clave.ps [i] - 48) 122;
}
fwrite(file.ps, 1, file.wd, pfile);
printf( "Cifrado exitoso ! \n");
fclose(parchivo);
fclose(pkey);
fclose(pfile);
fclose(pefile);
}
void decode( )
{
ARCHIVO *pfile, *pkey, * pdfile;
char nombre de ruta clave[50]
char nombre de ruta de archivo[50] ];
char dfilepathname[50];
clave de contraseña
archivo de contraseña
int
fflush(stdin);
printf("Ruta completa de la clave: ");
gets(keypathname);
if ((pkey = fopen( nombre de ruta clave, "rb")) == NULL)
{
printf("¡Error de clave abierta!\n"); >
}
fflush(stdin);
printf("Ruta completa del archivo: "); >
if ((pfile = fopen( filepathname, "rb")) == NULL)
{
printf("¡Error al abrir el archivo!\n");
p>
Retorno;
}
fflush(stdin);
printf("Ruta completa descifrada: ");
gets(dfilepathname);
if ((pdfile = fopen( dfilepathname, "wb")) == NULL)
{
printf("¡Error al abrir el archivo! \n");
Retorno
}
key.wd = fread(key.ps, 1, 10, pkey);
file.wd = fread(file.ps, 1, 10, pfile
for (i = 0; i ! = archivo.wd; i)
{
archivo.ps[i] = (archivo.ps[i] - clave.ps[i] 48 122) 122; p> p>
}
fwrite(file.ps, 1, file.wd, pdfile);
printf("¡Descifrado exitoso!\n"); p>
printtxt();
file.ps[file.wd] = '\0';
printf("Texto plano descifrado: s\n", file. ps) ;
fclose(pfile);
fclose(pkey).
fclose(pdfile);
}
void printtxt()
{
ARCHIVO* pfile;
char filepathname[50];
archivo de contraseña
int i; > fflush(stdin);
printf("Ruta completa al archivo original: ");
gets(filepathname
if ((pfile = fopen); (nombre de ruta de archivo, "rb")) == NULL)
{
printf("¡Error al abrir el archivo original!\n");
retorno;
}
archivo.wd = fread(archivo.ps, 1, 10, pfile); = '\0';
printf("Texto sin formato del archivo original: s\n", file. ps);
fclose(pfile);
}