IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Sos mon programme ne marche pas


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 30
    Points : 15
    Points
    15
    Par défaut Sos mon programme ne marche pas
    salut a tous,
    svp qq1 peut m'aider a trouver pour quoi ce programme ne marche pas ? je l'ai analyser plusieurs fois mais je trouve pas la faille
    le programme je l'ai mis en pièce jointe
    en faite ce programme est fait pour crypter des fichier avec l'algorithme IDEA
    merci
    Fichiers attachés Fichiers attachés
    • Type de fichier : c IDEA.C (7,2 Ko, 110 affichages)
    • Type de fichier : h IDEA.H (1,1 Ko, 84 affichages)

  2. #2
    Membre confirmé Avatar de Lunixinclar
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 416
    Points : 489
    Points
    489
    Par défaut
    Compile pas sur Linux GCC.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IDEA.C:9: error: le C++ ISO interdit la déclaration de « t1 » sans type
    Il sort d'ou ce code, sans blagues??

  3. #3
    Membre éprouvé Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Points : 1 260
    Points
    1 260
    Par défaut
    Salut,

    uint16 n'est pas défini.
    [alkama] quelqu'un est allé voir la guerre des mondes?
    [@Chrisman] j'espère pour spielberg
    --- bashfr.org

  4. #4
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Essaie de tester chacune de tes fonctions de façon isolée afin de localiser un peu mieux le problème et de pouvoir poster un code moins conséquent (c'est plus facile pour nous à debugger).

    Par ailleurs, pourrais-tu être plus précis que "mon code ne marche pas"? Quelle messages d'erreurs obtiens-tu de ton compilateur? Erreurs à l'exécution? Tout information supplémentaire nous permettra de t'aider plus efficacement.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  5. #5
    Membre éprouvé Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Points : 1 260
    Points
    1 260
    Par défaut
    Citation Envoyé par Lunixinclar
    Compile pas sur Linux GCC.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IDEA.C:9: error: le C++ ISO interdit la déclaration de « t1 » sans type
    Il sort d'ou ce code, sans blagues??
    Ceci dit, tu compiles du C avec un compilateur C++...
    Elles sortent d'où tes options de compilation, sans blagues ??
    http://emmanuel-delahaye.developpez....tm#cfg_compilo
    [alkama] quelqu'un est allé voir la guerre des mondes?
    [@Chrisman] j'espère pour spielberg
    --- bashfr.org

  6. #6
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Citation Envoyé par zooro
    Elles sortent d'où tes options de compilation, sans blagues ??
    du .C en majuscule

  7. #7
    Membre éprouvé Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Points : 1 260
    Points
    1 260
    Par défaut
    Citation Envoyé par gege2061
    du .C en majuscule
    Mouais...
    [alkama] quelqu'un est allé voir la guerre des mondes?
    [@Chrisman] j'espère pour spielberg
    --- bashfr.org

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 30
    Points : 15
    Points
    15
    Par défaut
    chez moi le programme s'excute sauf qu'il m'affiche le message :
    votre clé ne doit pas dépasser 8 caractéres
    alors que moi j'ai rien taper

  9. #9
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par Lunixinclar
    Compile pas sur Linux GCC.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IDEA.C:9: error: le C++ ISO interdit la déclaration de « t1 » sans type
    Il sort d'ou ce code, sans blagues??
    Ni sous windows :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    \test\IDEA.C: In function `uint16 inv(uint16)':
    \test\IDEA.C:4: error: `uint16 inv(uint16)' was declared `extern' and later `static'
    \test\/idea.h:33: error: previous declaration of `uint16 inv(uint16)'
    \test\IDEA.C: In function `void en_key_idea(unsigned int*, unsigned int*)':
    \test\IDEA.C:29: error: `void en_key_idea(unsigned int*, unsigned int*)' was declared `extern' and later `static'
    \test\/idea.h:30: error: previous declaration of `void en_key_idea(unsigned int*, unsigned int*)'
    \test\IDEA.C: In function `void de_key_idea(unsigned int*, unsigned int*)':
    \test\IDEA.C:44: error: `void de_key_idea(unsigned int*, unsigned int*)' was declared `extern' and later `static'
    \test\/idea.h:31: error: previous declaration of `void de_key_idea(unsigned int*, unsigned int*)'
    \test\IDEA.C: In function `void cipher_idea(unsigned int*, unsigned int*, unsigned int*)':
    \test\IDEA.C:116: error: `void cipher_idea(unsigned int*, unsigned int*, unsigned int*)' was declared `extern' and later `static'
    \test\/idea.h:32: error: previous declaration of `void cipher_idea(unsigned int*, unsigned int*, unsigned int*)'
    \test\IDEA.C: In function `void write_char_to_file(char, FILE*)':
    \test\IDEA.C:171: error: `exit' undeclared (first use this function)
    \test\IDEA.C:171: error: (Each undeclared identifier is reported only once for each function it appears in.)
    \test\IDEA.C: In function `void write_word16_to_file(unsigned int, FILE*)':
    \test\IDEA.C:180: error: `exit' undeclared (first use this function)
    \test\IDEA.C: In function `void swap_files_and_clean_up(char*)':
    \test\IDEA.C:295: error: `exit' undeclared (first use this function)
    \test\IDEA.C: In function `void getuserkeyfromargv(unsigned int*, char*)':
    \test\IDEA.C:326: warning: comparison between signed and unsigned integer expressions
    \test\IDEA.C: At global scope:
    \test\IDEA.C:338: error: ISO C++ forbids declaration of `main' with no type
    \test\IDEA.C: In function `int main(int, char**)':
    \test\IDEA.C:353: error: `exit' undeclared (first use this function)
    chez moi le programme s'excute sauf qu'il m'affiche le message :
    C'est étonnant qu'il compile


    Es-tu sûr de bien avoir implémenté ton algorithme ? Est-ce un pur problème algorithmique que tu as ou un problème vraiment lié au langage C ?


    Citation Envoyé par gege2061
    du .C en majuscule
    Bah oui, ça s'appelle le langage C, pas le langage c
    Je ne répondrai à aucune question technique en privé

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 30
    Points : 15
    Points
    15
    Par défaut
    voila le message qu'il m'affiche sur la console
    [IMG]C:\Documents and Settings\perso\Bureau\ecran.jpg[/IMG]
    Images attachées Images attachées  

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 30
    Points : 15
    Points
    15
    Par défaut
    le probleme n'est pas un probleme d'algo , mais du C

  12. #12
    Membre éprouvé Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Points : 1 260
    Points
    1 260
    Par défaut
    Citation Envoyé par monalisa_dulouvre
    voila le message qu'il m'affiche sur la console
    [IMG]C:\Documents and Settings\perso\Bureau\ecran.jpg[/IMG]
    Il semble que la clé doive être passée en paramètre lors de l'exécution...
    [alkama] quelqu'un est allé voir la guerre des mondes?
    [@Chrisman] j'espère pour spielberg
    --- bashfr.org

  13. #13
    Membre éprouvé Avatar de zooro
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2006
    Messages
    921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2006
    Messages : 921
    Points : 1 260
    Points
    1 260
    Par défaut
    Citation Envoyé par millie
    Bah oui, ça s'appelle le langage C, pas le langage c
    Exactement !
    [alkama] quelqu'un est allé voir la guerre des mondes?
    [@Chrisman] j'espère pour spielberg
    --- bashfr.org

  14. #14
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par monalisa_dulouvre
    je l'ai analyser plusieurs fois mais je trouve pas la faille

    Moi, je l'ai trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
       t1=inv(*Z++);
       t2=-*Z++;
       t3=-*Z++;
       *--p=inv(*Z++);
       *--p=t3;
       *--p=t2;
       *--p=t1;
       for (j=1;j<ROUNDS;j++)
       {
          t1=*Z++;
          *--p=*Z++;
          *--p=t1;
          t1=inv(*Z++);
          t2=-*Z++;
          t3=-*Z++;
          *--p=inv(*Z++);
          *--p=t2;
          *--p=t3;
          *--p=t1;
       }
       t1=*Z++;
       *--p=*Z++;
       *--p=t1;
       t1=inv(*Z++);
       t2=-*Z++;
       t3=-*Z++;
       *--p=inv(*Z++);
       *--p=t3;
       *--p=t2;
       *--p=t1;
    Ecrire des choses comme ça, c'est pas possible !!!!! Personne ne pourra t'aider en regardant un code comme ça. Si je voyais ça dans une vrai application, pouff poubelle et je recommence. C'est absolument non maintenable (déjà que la qualité du code est catastrophique, il manque plein de commentaires pour les autres) !

    Voici les régles de bases en programmation :

    • Lisibilité
    • Maintenabilité
    • Portabilité
    • Réutilisabilité
    • Extensibilité
    Je ne répondrai à aucune question technique en privé

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 30
    Points : 15
    Points
    15
    Par défaut
    oui je sait
    je programme mais en java, en C je ne connait pas grand chose, si ce n'ai qu'il ressemble a java ,
    mais pour repondre a ta question ce programme aetais codé par mon binom qui est partie en vaccance et moi je doit compiler ce programme pour le soumettre au prof,
    d'apres mon binome que je ne peut pas joindre, il ma dit qu'il faut passer le nom du fichier en paramettre avec la clé
    sinon au niveau de l'lago c'est moi qu'il la ecrit il est correcte parcque je l'ai tester avec des valeurs passer en argument

  16. #16
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Citation Envoyé par monalisa_dulouvre
    oui je sait
    je programme mais en java, en C je ne connait pas grand chose, si ce n'ai qu'il ressemble a java ,
    mais pour repondre a ta question ce programme aetais codé par mon binom qui est partie en vaccance et moi je doit compiler ce programme pour le soumettre au prof,
    d'apres mon binome que je ne peut pas joindre, il ma dit qu'il faut passer le nom du fichier en paramettre avec la clé
    sinon au niveau de l'lago c'est moi qu'il la ecrit il est correcte parcque je l'ai tester avec des valeurs passer en argument
    Alors ton binome t'as filé un code qui ne compile pas et pas du tout commenté. Documenter son code lorsqu'on travaille en équipe, c'est très important! Comme l'a fait remarquer millie, l'algorithme sous-jacent est sans doutes correct, mais le code est tellement illisible qu'on est pas beaucoup à avoir envie de s'y plonger, d'où ma proposition de tester chaque fonction de manière isolée afin de localiser le problème.

    Quant aux similitudes entre le langage C et Java, cela se limite à la syntaxe des structures for, while, switch et if et des opérateurs d'auto-incrémentation. Pour le reste, ces langages n'ont pas grand chose en commun.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 30
    Points : 15
    Points
    15
    Par défaut
    effectivement sur la similitudes entre le langage C et Java ta raison
    mais moi, ce soir je vais finir le compte rendu du programme avec bien évidament les commentaires sur le programme je vais vous l'envoyer
    mais en tous cas sur le programme le probleme se pose au niveau de la lecture de fichier qu'il ne trouve pas, mais moi je ne sais pas comment faire pour changer cette fonction afin qu'elle puisse lire un fichier txt (par exemple ) et convertir les lettres en code ASCII, pour appliquer l'algorithme de cryptage
    si qq1 peut proposer un code pour la lecture d'un fichier !!

  18. #18
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    Par défaut
    Donc voici les deux fonctions responsable de lecture dans un fichier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    char read_char_from_file(FILE *fp)
    {
       char temp=0;
     
       if ((fread(&temp, sizeof(char), 1, fp)) != 1)
          end_of_file=1;
     
       return (temp);
     
    }
     
     
     
    word16 read_word16_from_file(FILE *fp)
    {
       word16 temp=0;
     
       if ((fread(&temp, sizeof(word16), 1, fp)) != 1)
          end_of_file=1;
     
       return temp;
     
    }
    end_of_file en global, je comprends que tu n'arrives pas à debugger ce programme! C'est du code spaghetti et illisible. Je ne m'avancerais pas à évaluer ce code sur l'échelle du goret, mais tu peux te faire une idée par toi-même: http://emmanuel-delahaye.developpez.com/goret.htm

    Si c'était moi, (et cela n'engage que moi) cela me prendrai certainement moins de temps et d'effort de repartir de l'algo de départ et de tout re-coder depuis zéro.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 30
    Points : 15
    Points
    15
    Par défaut
    sympa ton image ,
    ok je comprend
    j'ai autre chose regarde de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    /* Programme de cryptage IDEA */
     
    #include <stdio.h>
    #define maxim 	65537
    #define fuyi	65536
    #define un 	65535
    #define etape	8	
     
    void chiffrer(unsigned IN[5],unsigned OUT[5], unsigned Z[7][10]);
    void cle(short unsigned uscle[9], unsigned Z[7][10]);
    void de_cle(unsigned Z[7][10], unsigned DK[7][10]);
    unsigned inv(unsigned xin);
    unsigned mul(unsigned a, unsigned b);
     
    void main() 
    {
    	int i,j,x;
    	unsigned Z[7][10], DK[7][10], XX[5], TT[5], YY[5];
    	short unsigned uscle[9];
     
    	for(i=1;i<=8;i++) uscle[i]=i;
    	cle(uscle,Z);	/* intgrer les sous-cle Z[i][r] */
    	printf("\nencryption cles\t  Z1\t  Z2\t  Z3\t  Z4\t  Z5\t  Z6");
    	for(j=1;j<=9;j++) { printf("\n %3d-ieme etape",j);
    		if(j==9) for(i=1;i<=4;i++) printf("\t%6d",Z[i][j]);
    			else for(i=1;i<=6;i++) printf("\t%6d",Z[i][j]);
    		}
     
    	de_cle(Z,DK);	/* compute decryption subcles DK[i][r] */
    	printf("\n\ndecryption cles\t  DK1\t  DK2\t  DK3\t  DK4\t  DK5\t  DK6");
    	for(j=1;j<=9;j++) { printf("\n %3d-ieme etape",j);
    		if(j==9) for(i=1;i<=4;i++) printf("\t%6d",DK[i][j]);
    			else for(i=1;i<=6;i++) printf("\t%6d",DK[i][j]);
    	}
     
    	for(x=1;x<=4;x++) XX[x]=x-1; /*ici on pose le text a chiffrer est : 0, 1, 2, 3 ,4*/ 
    	printf("\n\n texte en claire  X\t%6u\t%6u\t%6u\t%6u\n",
    					XX[1],XX[2],XX[3],XX[4]);
     
    	chiffrer(XX,YY,Z);	/* chiffrer  XX to YY avec la cle Z */
     
    	printf("\n\n texte crypter Y\t%6u\t%6u\t%6u\t%6u\n",
    					YY[1],YY[2],YY[3],YY[4]);
     
    	chiffrer(YY,TT,DK);	/* dechiffrer YY to TT avec les cle DK */
     
    	printf("\n\n result     T\t%6u\t%6u\t%6u\t%6u\n",
    					TT[1],TT[2],TT[3],TT[4]);
     
    }
     
    	/* Algorithme de cryptage */
    void chiffrer(unsigned IN[5],unsigned OUT[5],unsigned Z[7][10]) 
    {
    	unsigned r,x1,x2,x3,x4,kk,t1,t2,a;
    	x1=IN[1]; x2=IN[2]; x3=IN[3]; x4=IN[4];
    	for(r=1;r<=8;r++) 			/* les etapes */
    	{
    			/* les operations effectuer en bloc de 64bits */
    	x1 = mul(x1,Z[1][r]);		x4 = mul(x4,Z[4][r]);
    	x2 = (x2 + Z[2][r]) & un;	x3 = (x3 + Z[3][r]) & un;
     
    	kk = mul(Z[5][r],(x1^x3));
    	t1 = mul(Z[6][r],(kk+(x2^x4)) & un);
    	t2 = (kk+t1) & un;
    			/* la permutation PI */
    	x1 = x1^t1;		x4=x4^t2;
    	a  = x2^t2;		x2=x3^t1;	x3=a;
     
    	printf("\n\t%1u-ieme etape %6u\t%6u\t%6u\t%6u",r,x1,x2,x3,x4);
    	}
     
    		/* le resultat */
    	OUT[1] = mul(x1,Z[1][etape+1]);
    	OUT[4] = mul(x4,Z[4][etape+1]);
    	OUT[2] = (x3+Z[2][etape+1]) & un;
    	OUT[3] = (x2+Z[3][etape+1]) & un;
    }
     
    	/* la fonction de multiplication utiliser dans le cryptage */
     
    unsigned mul(unsigned a,unsigned b) 
    {
    	long int p;
    	long unsigned q;
    		if(a==0) p=maxim-b;
    		else
    		if(b==0) p=maxim-a;
    		else {
    		q=(unsigned long)a*(unsigned long)b;
    		p=(q & un) - (q>>16); 
    		if(p<=0) p=p+maxim;
    		}
    	return (unsigned)(p&un);
    }
     
    	/* compute inverse of xin by Euclidean gcd alg. */
     
    unsigned inv(unsigned xin)
    {
    	long n1,n2,q,r,b1,b2,t;
    	if(xin==0) b2=0;
    	else
    	{ n1=maxim; n2=xin; b2=1; b1=0;
    		do { r = (n1 % n2); q = (n1-r)/n2;
    			 if(r==0) { if(b2<0) b2=maxim+b2; }
    			 else { n1=n2; n2=r; t=b2; b2=b1-q*b2; b1=t; }
    		   } while (r!=0);
    	}
    	return (unsigned)b2;
    }
     
    	/* generer les sous-cles Z */
     
    void cle(short unsigned uscle[9], unsigned Z[7][10]) 
    {
    	short unsigned S[54];
    	int i,j,r;
    	for(i=1;i<9;i++) S[i-1]=uscle[i];
     
    	for(i=8;i<54;i++)
    		{
    			if((i+2)%8 == 0)			/* pour S[14],S[22],... */
    				S[i] = ((S[i-7]<<9) ^ (S[i-14]>>7)) & un;
    			else if((i+1)%8==0)			/* pour S[15],S[23],... */
    				S[i] = ((S[i-15]<<9) ^ (S[i-14]>>7)) & un;
    			else
    				S[i] = ((S[i-7]<<9) ^ (S[i-6]>>7)) & un;
    		}
     
    	/* donnée les sous-cles */
     
    	for(r=1;r<=etape+1;r++) 
    	 for(j=1;j<7;j++)
    		Z[j][r]=S[6*(r-1)+j-1];
    }
     
    	/* compute decryption subcles DK's */
     
    void de_cle(unsigned Z[7][10],unsigned DK[7][10])
    {
    	int j;
    	for(j=1;j<=etape+1;j++)
    	{
    		DK[1][etape-j+2] = inv(Z[1][j]);
    		DK[4][etape-j+2] = inv(Z[4][j]);
     
    		if (j==1 || j==etape+1) {
    			DK[2][etape-j+2] = (fuyi-Z[2][j]) & un;
    			DK[3][etape-j+2] = (fuyi-Z[3][j]) & un;
    		} else {
    			DK[2][etape-j+2] = (fuyi-Z[3][j]) & un;
    			DK[3][etape-j+2] = (fuyi-Z[2][j]) & un;
    		}
    	}
     
    	for(j=1;j<=etape+1;j++)
    	{ DK[5][etape+1-j]=Z[5][j];
    	  DK[6][etape+1-j]=Z[6][j];
    	}
    }
    il lui manque la fonction qui permet la lecture de fichier et réecrire dans un autre fichioer de sortie
    si tu peut faire qq chose
    sache que ce programme marche tres bien mais le hic c'est que le text chiffrer et simplement les valeurs : 0,1,2,3,4

  20. #20
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par monalisa_dulouvre
    voila le message qu'il m'affiche sur la console
    [IMG]C:\Documents and Settings\perso\Bureau\ecran.jpg[/IMG]
    Visiblement, il faut passer des choses en paramètre sur la ligne de commande...

    C'est pas un problème de C, mais d'utilisation de ton application. Vu que tu as conçu le code, tu sais donc ce qu'il faut passer comme paramètres...
    Pas de Wi-Fi à la maison : CPL

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Mon programme ne marche pas !
    Par Robmilou dans le forum Débuter
    Réponses: 3
    Dernier message: 23/10/2007, 18h39
  2. Réponses: 3
    Dernier message: 16/04/2007, 17h01
  3. Mon programme ne marche pas aprés le if:?
    Par mitherkiller dans le forum C
    Réponses: 28
    Dernier message: 28/03/2007, 19h47
  4. Tcsh - Mon script ne marche pas
    Par Aramis dans le forum Linux
    Réponses: 5
    Dernier message: 13/05/2004, 18h26
  5. [IB71] mon Blob ne marche pas correctement
    Par BoeufBrocoli dans le forum InterBase
    Réponses: 2
    Dernier message: 17/09/2003, 14h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo