Salve a tutti, ho un problema riguardo il seguente frammento di codice:
in pratica è un programma che cifra e decifra del testo secondo la codifica RSA.
Il problema molto probabilmente sta nella lettura e scrittura non formattata.. in pratica dato un file di testo pensavo di prendere carattere per carattere cola la .get() e cifrarlo per mezzo della funzione moltiplica.. il problema è che in decifratura il messaggio non viene appunto decifratocodice:char CalcolaPotenza( int N, int e, uint64_t r ) { char ris = 1; for ( ; e > 0; e-- ){ ris = (ris*N)%r; } return ris; } int Codifica( int esp, uint64_t mod ) { char CarCorrente, Car; ifstream leggi(NomeFileIn); if ( !leggi ) return 1; ofstream scrivi(NomeFileOut); if ( !scrivi ) return 2; while( (CarCorrente = leggi.get()) != EOF ) { Car = CalcolaPotenza(CarCorrente, esp, mod); scrivi.put(Car); } return 0; }
ad esempio supponendo di dover cifrare il carattere 'a' con le chiavi (5, 323) e (173, 323) avrei
97^5 mod 323 = 241 cifratura
241^173 mod 323 = 97 decifratura
cosa che funziona bene in teoria, ma che non mi viene in pratica![]()


Rispondi quotando