Red de conocimiento informático - Descarga de software - Usando la programación C++, cómo darse cuenta de que un determinado archivo no se puede copiar

Usando la programación C++, cómo darse cuenta de que un determinado archivo no se puede copiar

Puedes cifrar estos archivos para que sólo aquellos con una clave (contraseña) puedan operarlos.

La siguiente es la implementación del programa.

Utilizo el lenguaje C, que tiene una sintaxis similar a la de C++.

Existen muchas técnicas para cifrar archivos, que se dividen en diferentes niveles para adaptarse a las necesidades de diferentes ocasiones. Esta es la técnica de cifrado de archivos más simple. , el archivo se cifra mediante XOR del archivo byte a byte con la contraseña. Al descifrarlo, solo necesita ejecutar el programa de cifrado nuevamente.

El siguiente es un programa de ejemplo que puede cifrar cualquier archivo. La contraseña requiere que el usuario la ingrese y está limitada a 8 caracteres (por supuesto, puede cambiarla. El programa tiene un buen diseño tolerante a fallas

#include

<). p> #include

#include

#include

void dofile(char *in_fname ,char *pwd,char *out_fname);/*Función específica para cifrar archivos*/

void main(int argc,char *argv[])/*Definir los parámetros de línea de comando de main() function*/

{

char in_fname[30];/*El nombre del archivo a cifrar ingresado por el usuario*/

char out_fname[30] ;

char pwd[8];/*Se utiliza para guardar contraseñas*/

if(argc!=4){/*Procesamiento de tolerancia a fallos*/

printf("\

In-fname:\

");

gets(in_fname);/*Obtener el nombre del archivo a cifrar*/

printf(" Contraseña:\

");

gets(pwd);/*obtener contraseña*/

printf( "Out-file:\

");

gets(out_fname);/*Obtenga el nombre del archivo que desea después del cifrado*/

dofile(in_fname ,pwd,out_fname);

}

else{/*Si los parámetros de la línea de comando son correctos, ejecute el programa directamente*/

strcpy(in_fname, argv[1]);

strcpy(pwd,argv[2]);

strcpy(out_fname,argv[3]);

dofile(in_fname ,pwd,out_fname);

}

}

/*Se inicia la subfunción de cifrado*/

void dofile(char * in_fname,char *pwd,char *out_file)

{

ARCHIVO *fp1,*fp2;

registrar char ch;

int j=0;

int j0=0;

fp1=fopen(in_fname,"rb");

if(fp1==NULL){

printf("no se puede abrir en -file.\

");

exit(1);/*Si el archivo a cifrar no se puede abrir , salga del programa*/

}

fp2=fopen(out_file,"wb");

if(fp2==NULL){

printf("no se puede abrir ni crear un archivo de salida. \

");

exit(1);/*Si no se puede establecer el cifrado

archivo, salir*/

}

while(pwd[++j0]);

ch=fgetc(fp1);

/*Se inicia el algoritmo de cifrado*/

while(!feof(fp1)){

fputc(ch^pwd[j>=j0?j=0:j++] ,fp2 );/*Escribir en el archivo fp2 después de XOR*/

ch=fgetc(fp1);

}

fclose(fp1);/ *Cerrar el archivo de origen*/

fclose(fp2);/*Cerrar el archivo de destino*/

}

/*Fin del programa*/