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 :

coder un mot de passe


Sujet :

C

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 13
    Points : 8
    Points
    8
    Par défaut coder un mot de passe
    Bonjour à tous,

    j'ai utilisé une fonction qui me permet de coder et décoder un mot de passe en language c, le pb c'est qu'il marche sur des mots de passe et ne marche pas sur d'autres, je ne comprends pas le comportement.

    le cle est "totototo".
    lorsque je met comme passwd "azertyui" il met n'importe quoi lorsqu'il décode le passwd.

    j'ai utilisé le ou exclusif bit par bit.

    voila mon 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
    /**************************************************************************/
    /*                   Fonction  applyKey                                    */
    /**************************************************************************/
    void applyKey(char * password, char * resultat, int length, char * cle)
    {
       int i;
     
      // ou exclusif bit par bit du pwd formule :
      //pwd_crypter = pwd_clair ^ cle
      //pwd_clair = pwd_crypter ^ cle
       for(i = 0; i < length; i++) {
     
        resultat[i] = password[i] ^  cle[i] ;
       }
    }
    /**************************************************************************/
    /*                   Fonction Coder / Decodeer pwd                        */
    /**************************************************************************/
     
    char * Coder_Decoder(char * pwdCrypter, char * key){
         char* res;
        unsigned char  in[100];
        unsigned char  out[100];
     
       int i;
     
          memcpy(in, pwdCrypter, 8);     
          applyKey(in, out, 8, key);
     
          for(i=0;i<length;i++){
          printf("\n decodage : out[%d]:%c",i,out[i]);
     
     
         }
     
         length = strlen(out);
     
       out[8]='\0';     
       res=out;
     
        printf("\n resultat de coder Decoder : %s",res);
       return(res);
     
    }
    merci de votre aide.

  2. #2
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Pourrait-on avoir le code qui compile s'il te plait.

    Rien que de vue dans la fonction Coder_Decoder je dis undeclared lenght.

    Merci bien.

  3. #3
    Membre expérimenté
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Points : 1 421
    Points
    1 421
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    char * Coder_Decoder(char * pwdCrypter, char * key){
         char* res;
        unsigned char  out[100];
     
       res=out;
       return(res);
    }
    moi ca m'etonne pas que ca marche pas ...
    tu renvoie l'addresse d'un tableau declarée dans ta fonction: revois le chapitre "portée des declarations" de ton bouquin de C.

  4. #4
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Et oui, ton tableau "unsigned char out[100]" n'existe plus apres la fin de la fonction, declare le en statique et il existera apres.

    Apres, ya un "length" qu'on sait pas d'où il sort...

  5. #5
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par Gruik
    declare le en statique et il existera apres.
    Bien que vrai:

    Il faut mieux allouer dynamiquement avec un malloc et retourner l'adresse de la zone créé.

    Jc

  6. #6
    Membre expérimenté
    Avatar de Gruik
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2003
    Messages
    1 566
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 566
    Points : 1 729
    Points
    1 729
    Par défaut
    Bof, ça reste à debattre

  7. #7
    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 Gruik
    Bof, ça reste à debattre
    Non. Une statique, çaymal.
    • Pas de réentrance
    • Pas de multithreading
    • Une fois qu'on sait où elle est, facile de la relire pour avoir le mot de passe !

Discussions similaires

  1. coder les mots de passe des membres ou pas ?
    Par Invité dans le forum Sécurité
    Réponses: 3
    Dernier message: 28/07/2011, 18h20
  2. [MySQL] Coder les mots de passe
    Par TaleMaker dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/11/2009, 20h08
  3. Réponses: 2
    Dernier message: 31/05/2007, 13h37
  4. Réccupération du mot de passe d'une connexion
    Par zinaif dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/12/2002, 18h32
  5. Au sujet des mots de passe
    Par FranT dans le forum Langage
    Réponses: 6
    Dernier message: 17/09/2002, 22h16

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