Newsgroup: it.comp.lang.c++
Titolo: Problemuccio...

Allora, ho creato questa specie di programma di criptazione (lasciate
peredere la sua semplicità...) ora, le tabelle dalla 0 alla 127 dovrebbero
essere le criptanti, quelle dalla 128 alla 255 le decriptanti.
Ma perche il programma non decripta?
Ogni consiglio è ben accetto
///////////////////sorgente////////////////
#include <iostream>
#include <stdlib.h>
#include <vector>
#include <string>
#include <fstream>
string cripta(string str,unsigned char Tab[256][256]){
string tmp="";
for(int k=0;k<str.size();k++) tmp+=Tab[128][str[k]];
return tmp;}
int main()
{char wait=219;
string locazione;
int B[256]=
{3, 5, 6, 7, 10, 12, 14, 19, 20, 24, 27, 28, 33, 37, 38, 39, 40, 41, 43,
45, 47, 48, 51, 53, 54, 55, 56, 63, 65, 66, 69, 71, 74, 75, 76, 77, 78,
80, 82, 83, 85, 86, 87, 90, 91, 93, 94, 96, 97, 101, 102, 103, 105, 106,
107, 108, 109, 110, 112, 115, 119, 125, 126, 127, 130, 131, 132, 138,
142, 145, 147, 148, 149, 150, 151, 152, 154, 155, 156, 160, 161, 163,
164, 166, 167, 170, 171, 172, 174, 175, 177, 179, 180, 181, 182, 183,
186, 188, 191, 192, 194, 201, 202, 203, 204, 206, 209, 210, 212, 214,
216, 217, 218, 219, 220, 224, 229, 230, 233, 237, 238, 243, 245, 247,
250, 251, 252, 254};
unsigned char T[256][256];
int i,j,last,S,SZero=6,P;
S=SZero;
// prime 128 tabelle
for (i=0; i<128; i++)
{ last=1;
   P=B[i];
   for (j=0; j<256; j++)
   {
    last = (last*P) % 257;
    T[i][j]=(last-1+S) % 256;
   } S=T[i][77];
}
// seconde 128 tabelle
for (i=0; i<128; i++){
    for (j=0; j<256; j++)
       T[i+128][T[i][j]]=(char)j;} //dovrebbero essere le tabelle di
decodifica
std::cout<<"Scrivi l'indirizzo completo del file: ";
std::cin>>locazione;
ifstream in(locazione.c_str());
std::cout<<'\n'<<"Sto lavorando..." <<'\n';
string line;
vector<string> filez;
while(getline(in,line)) filez.push_back(line+'\n');
ofstream out(locazione.c_str());
for(int i=0;i<filez.size();i++) out<<cripta(filez[i],T);
std::cout<<'\n';
system("PAUSE");
return 0;
}
///////////////////////////////////////////////////////////////
--
« Ma il tempo, il tempo chi me lo rende?
Chi mi da' indietro quelle stagioni
di vetro e sabbia, chi mi riprende
la rabbia e il gesto, donne e canzoni...»
                                      Francesco Guccini
«Considerate la vostra semenza:
fatti non foste a viver come bruti,
ma per seguir virtute e conoscenza»
                                       Dante
mailto: 
savecast...@virgilio.it

 return tmp;}
Questa cripta sempre con la tabella 128 ? Ma la 128
non era una tabella di decrittazione ???
(Poi, se devi fare tante operazioni non credo proprio che
usare le string in quel modo sia efficiente.)
Queste tabelle mi sono familiari perche' qualche tempo
fa te le ho suggerite io. Pero' come si fa a capire perche'
non decripta se non posti il codice in cui dovrebbe decriptare?
ciao,
g.

Quello era un esempio... io ho criptato usando il codice con la tabella 0 e
ho decriptato con la tabella 0+128... la funzione decripta non c'è ancora,
ma il decriptaggio è da fare manualmente.Riguardo al codice, è ancora agli
inizi... ovviamente appena avrò capito perchè le tabelle inverse non
funzionano modificherò l'algoritmo... tranquillo, non ti ruberò il codice!
--
« Ma il tempo, il tempo chi me lo rende?
Chi mi da' indietro quelle stagioni
di vetro e sabbia, chi mi riprende
la rabbia e il gesto, donne e canzoni...»
                                      Francesco Guccini
«Considerate la vostra semenza:
fatti non foste a viver come bruti,
ma per seguir virtute e conoscenza»
                                       Dante
mailto: 
savecast...@virgilio.it
"Giovanni Resta" <g.r...@iit.cnr.it.nospam> ha scritto nel messaggio
news:3E68520E...@iit.cnr.it.nospam...
