Cryptage-Cesar

Résolu
TrD_ Messages postés 7 Date d'inscription dimanche 14 janvier 2007 Statut Membre Dernière intervention 29 mars 2008 - 27 févr. 2008 à 11:32
TrD_ Messages postés 7 Date d'inscription dimanche 14 janvier 2007 Statut Membre Dernière intervention 29 mars 2008 - 27 févr. 2008 à 15:06
Bon je viens en dernier recours, je tente de créer une librarie de cryptage mais évidement sa ne marche pas !

//begin
if((buffer[i] >= 'A') && (buffer[i] <= 'Z'))
{
       if(c_d)//si il faut crypter
       {
             buffer[ i ] = ( ( buffer[ i ] - 65 ) + decalage ) % 26 + 65;
        }
        else if(!c_d)//si il faut decrypter
        {
             buffer[ i ] = ( ( buffer[ i ] - 65 ) - decalage ) % 26 + 65;
         }
}
//end

Le cryptage marche apparement (je les verifieé sur feuille), par contre au décryptage il m' affiche des caracteres ASCII tel que :  ', _, ...
Si quelqun pouvait m' aider j' ai essayer les algo de cppfrance sur ce theme mais il ne fonctionne pas non plus. Es un probleme vis a vis du decalage qui ne doit pas depasser un nombre precis ou autre chose, merci d'avance !

2 réponses

cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
27 févr. 2008 à 12:29
Sans doute un pb quand buffer[ i ] - 65 ) - decalage est inférieur a 0
int temp = ( buffer[ i ] - 65 ) - decalage;
if (temp < 0) {
    temp += 26;
}
buffer[ i ] = ( temp ) % 26 + 65;

Cdt
3
TrD_ Messages postés 7 Date d'inscription dimanche 14 janvier 2007 Statut Membre Dernière intervention 29 mars 2008
27 févr. 2008 à 15:06
Merci beaucoup, c' est bien sa !!
Ca m'avance pour cesar mais aussi pour vigenere ou je me serai heuté au même probleme .... !
Merci
0
Rejoignez-nous