Ho implementato un programma molto breve per crittografare un file e inviarlo su un server remoto. Innanzitutto, costruisco una chiave basata su una passphrase e un sottoinsieme di numeri primi (la lunghezza della chiave è definita dall'utente, 100 KB per impostazione predefinita). La crittografia è costituita da un semplice XOR dai byte sorgente e dai "byte modulati" della chiave, ad es .: s ^ k
. Viene inviato anche un indice dei file, criptato.
Se la chiave privata e la pass-frase privata non vengono mai inviate al server, è possibile decodificare file, tipo di file o nomi?
Questo è il codice della crittografia quando è stata generata la chiave.
while (!feof(fp_src))
{
v = fgetc(fp_src) ;
if (v == EOF) { break ; } // Success : end of process.
// Loop on key content :
p = fgetc(fp_key) ;
if (p == EOF) {
fseek(fp_key, 0, SEEK_SET) ;
p = fgetc(fp_key) ;
if (p == EOF) { break ; }
}
o = v ^ p ;
fputc(o, fp_out) ;
show_progress(src_len, proc_idx) ;
proc_idx++ ;
}
Grazie mille.