Salve, diversi mesi fa, interessato all'argomento iniziai a scrivere del codice in C che applicasse una cifratura simmetrica a un determinato messaggio inserito dalla console (in seguito non mi sono dedicato più per diversi motivi).
Questa è la funzione per cifrare:
void cifra(char messaggio[], char pass[]){
int i=0;
for(; i<strlen(messaggio); i++){
messaggio[i]^=pass[i%strlen(pass)];
}
}
E questa è la funzione per ottenere il messaggio in chiaro:
void decifra(char messaggio[], char pass[]){
int i=0;
for(; i<strlen(messaggio); i++){
messaggio[i]^=pass[i%strlen(pass)];
}
}
Come si può vedere è un metodo abbastanza semplice per cifrare, che usa l'operatore xor tra un carattere del messaggio (in ordine crescente) e un carattere della chiave determinato dell'espressione: i%strlen(pass).
Vorrei chiedere a chi è più esperto, cosa ne pensa e quali sarebbero le falle di tale metodo.