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 :

conversion entre types de données.


Sujet :

C

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

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 21
    Points : 23
    Points
    23
    Par défaut conversion entre types de données.
    Bonjour,
    J'aurai une question pour connaitre la réelle différence entre deux types de données, le unsigned char et le char tout court. Cela fait un bout de temps que je manipule de hash de type sha1 et je voudrais avoir l'avis de quelqu'un d'autre à ce sujet. Tout d'abord, si l'on donne une chaine de caractères à l'algorithme SHA-1, il calculera le message digest md qui est fourni en type unsigned char, selon signifie que chaque caractère est non signé et peut prendre une valeur entre 0 et 255. Si l'on veut que les données soient visibles à l'écran, on convertit md en char avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    unsigned char md[SHA_DIGEST_LENGTH];
    const char * s = "abc";
    SHA1((const unsigned char*)s,strlen(s),md);
    static char array[41];
    sprintf(array, "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x",
    	*md, *(md+1), *(md+2), *(md+3),
    	*(md+4), *(md+5), *(md+6), *(md+7),
    	*(md+8), *(md+9), *(md+10), *(md+11), *(md+12),
    	*(md+13), *(md+14), *(md+15), *(md+16), *(md+17),
    	*(md+18), *(md+19)");
    Ma question est de savoir si il est possible à partir de array de reobtenir la forme en unsigned char , c'est à dire md, en utilisant sprintf par exemple?
    Cela fait quelques jours que je tatonne avec printf dans tous les sens sans obtenir le résultat voulu. Si quelqu'un peut le fournir une méthode, je serai content de la connaître.

    Salutations,
    Johnny.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 376
    Points
    376
    Par défaut
    Une possibilité:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <stdlib.h>
    #include <stdio.h>
    ...
    int i;
    char tmp[3];
     
    for (i=0;array[i];i += 2)
    {
      sprintf(tmp,"%.2s",&array[i]);
      md[i/2] = (unsigned char) strtol(tmp,NULL,16);
    }

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 21
    Points : 23
    Points
    23
    Par défaut
    Merci. C'est parfait.

    Salutations
    Johnny.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/06/2007, 23h07
  2. Erreur 3421, Erreur de conversion de type de données
    Par khorn dans le forum VBA Access
    Réponses: 13
    Dernier message: 01/06/2007, 10h52
  3. Conversion de type de données d'un champ dans un recordset DAO.
    Par heavenvibes dans le forum VBA Access
    Réponses: 9
    Dernier message: 01/03/2007, 12h21
  4. Pb de conversion de type de données
    Par keiserjo dans le forum Excel
    Réponses: 4
    Dernier message: 25/07/2006, 14h39
  5. [Excel] Problème de conversion de type de données
    Par keiserjo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/07/2006, 12h26

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