|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jul 2003
Messaggi: 280
|
[C] Codifica / Decodifica
ho qualche piccolo dubbio su codifica / decodifica di stringhe in c.
al momento da una stringa codificata riesco a ricavare la stringa originale . Ma nel fare i passi inversi mi blocco . da stringa codificata a stringa in chiaro : for( i=0; i<lunghezza_stringa_codificata; i+=2) { stringa_decodificata[i>>1] = (char)(((stringa_codificata[i]&0xf0)>>4)+((stringa_codificata[i+1]&0x0f)<<4)-chiave[0]); } come vedete e' molto facile, ma e' solo per fare delle prove. ora e' il contrario che non riesco a fare !!! questo mi da risultati sbagliati : i=0; j=0; for(i=0;i<(int)strlen(stringa_decodificata);i++) { j=2*i; stringa_codificata[j]=(unsigned char)(((stringa_decodificata[i])&0x0f)<<4) ; stringa_codificata[j+1]=(unsigned char)(((stringa_decodificata[i])&0xf0)>>4) ; }; praticamente dovrei eseguire l' inverso dei passi del primo pezzo, ma qualcosa mi sfugge... |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Re: [C] Codifica / Decodifica
Prova così:
Codice:
for(i=0;i<(int)strlen(stringa_decodificata);i++)
{
j=2*i;
stringa_codificata[j] += (unsigned char)(((stringa_decodificata[i])&0x0f)<<4) ;
stringa_codificata[j+1] += (unsigned char)(((stringa_decodificata[i])&0xf0)>>4) ;
}
|
|
|
|
|
|
#3 | |
|
Member
Iscritto dal: Jul 2003
Messaggi: 280
|
Re: Re: [C] Codifica / Decodifica
Quote:
quello che "in teoria" mi manca e' l' utilizzo di key[0] (che e' solo un singolo valore, ma non so come gestirlo . |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Aggiungi chiave[0] ad ogni elemento della stringa codificata...
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:17.



















