Red de conocimiento informático - Material del sitio web - Cómo escribir un programa de cifrado de carpetas en lenguaje C

Cómo escribir un programa de cifrado de carpetas en lenguaje C

1.

1. El cifrado de carpetas es una función que solo puede realizar el sistema operativo C y no puede manejarla a menos que se llame al comando del sistema.

2. El cifrado utiliza un algoritmo especial para cambiar los datos de la información original, de modo que incluso si los usuarios no autorizados obtienen la información cifrada, aún no pueden entender el contenido de la información porque no saben cómo descifrarlo. Como algoritmos simétricos o cifrado.

3. ¿Qué es el algoritmo XOR? La característica del algoritmo XOR es que el valor original se convierte en el valor original después de dos determinadas operaciones XOR. Por lo tanto, a veces se utiliza para cifrar datos con una clave. par. Cifrar y generar texto cifrado. Una vez que el receptor recibe el texto cifrado, utiliza la clave proporcionada por la parte del cifrado para realizar una operación XOR nuevamente para obtener el texto sin formato.

4. Ejemplo: /* Cifre el archivo en unidades DWORD y escriba cada DWORD en otro archivo usando 0xfcba0000 (clave) como operación XOR*/

# include?lt; stdio.hgt;

#include?lt;stdlib.hgt;

#define?DWORD?unsigned?long

#define?BYTE ?unsigned?char ?

#define?false?

#define?

int?main (int?argc, ?char?*argv[])

{ ARCHIVO?*hFuente; ARCHIVO?*hDestino; DWORD?dwKey=0xfcba0000; char*?pbBuffer; DWORD?dwBufferLen=sizeof(DWORD?dwCount; 0||argv[2]==0) {

printf("¿falta? argumento!\n");

return?false } char*? 1]; char*?szDestination=argv[2]; hSource?=?fopen(szSource, "rb");

hDestination?=?fopen(szDestination, "wb"); //Abrir el archivo de destino if?{printf("open?Source?File?error?!"); ) {?printf("open?Destino?Archivo?error?!") ; return?false?;} //asignar el buffer pbBuffer=(char*?) malloc(dwBufferLen do?{

/?Leer bytes dwBlockLen del archivo fuente

dwCount?=?fread(pbBuffer,?1,?dwBufferLen,?hSource);

//Datos cifrados

dwData?=?*(DWORD*)pbBuffer;?//char*?TO?dword

dwData^=dwKey;//xor?operación

pbBuffer? ?(char?*)? amp;dwData;

//? Escribe datos cifrados en el archivo de destino

fwrite(pbBuffer, ?1, ?dwCount, ?hDestination); ? while(!feof(hSource));

// Cierra el archivo y libera la memoria fclose( hSource(hDestination); " , szSource, szDestination); ¿regresar?;

}