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 :

calcul de checksum


Sujet :

C

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2012
    Messages : 2
    Par défaut calcul de checksum
    Bonjour un programme en C que j'ai démarré demande ceci:
    Entrer un mot:Hello(par exemple)
    Empreinte1:F4(somme de tous les codes ascii modulo FF:48+65+6c...)
    Empreinte2:31(48*1+65*2+6c*3....)
    C'est le calcul de la deuxième empreinte qui m'embête,quelqu'un a une idée???
    Moi je maîtrise beaucoup plus l'assembleur mais pas le C,voilà pourquoi ça m'embête.

  2. #2
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Salut,

    Au pif je dirais que 0x48 est le code ascii de 'H', 0x65 celui de 'e', etc... A vrai dire je ne comprends pas ton problème...

    A+

    Pfeuh

    P.S. Allez, un petit coup de pouce, mais qui ne donne pas le résultat escompté.

    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
    #include <stdlib.h>
    #include <stdio.h>
     
    #define INPUT_STRING "Hello"
     
    unsigned char getFootPrint1(char* text)
    {
        unsigned char footprint = 0;
        while(*text != '\0')
            footprint += (*text++);
        return footprint ^0xff;
    }
     
    unsigned char getFootPrint2(char* text)
    {
        unsigned char footprint = 0;
        unsigned char divisor = 1;
        while(*text != '\0')
            footprint += (*text++) * divisor++;
        return footprint;
    }
     
    int main (void)
    {
        printf("%02X %02X\n", getFootPrint1(INPUT_STRING), getFootPrint2(INPUT_STRING));
        return 0;
    }

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 813
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par yoni0981 Voir le message
    Empreinte2:31(48*1+65*2+6c*3....)
    C'est le calcul de la deuxième empreinte qui m'embête,quelqu'un a une idée???
    Citation Envoyé par pfeuh Voir le message
    Salut,

    Au pif je dirais que 0x48 est le code ascii de 'H', 0x65 celui de 'l', etc... A vrai dire je ne comprends pas ton problème...
    Salut
    Oui c'est ça. Le code ascii de la lettre (en hexa) multiplié par sa position dans la chaine...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2012
    Messages : 2
    Par défaut
    Mais c'est calculé en hexadécimal c'est en fait la conversion d'une chaine de caractères en une valeur hexadécimal,donc dans mon exemple pour "hello",48 est bien la valeur hexadécimale en ascii de "h".

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 813
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par yoni0981 Voir le message
    Mais c'est calculé en hexadécimal c'est en fait la conversion d'une chaine de caractères en une valeur hexadécimal,donc dans mon exemple pour "hello",48 est bien la valeur hexadécimale en ascii de "h".
    Non, de "H" !!!

    Sinon ben c'est pas très compliqué. 6c * 3 en hexa c'est pareil que 108 * 3 en décimal ce qui est identique à 'l' * 3...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Choix et calcul CRC, checksum,md5
    Par mercure07 dans le forum C++
    Réponses: 1
    Dernier message: 22/04/2008, 14h27
  2. calcul de checksum
    Par jerome86600 dans le forum Sécurité
    Réponses: 3
    Dernier message: 29/12/2007, 01h33
  3. Calcul de Checksum
    Par ktsys dans le forum C++
    Réponses: 12
    Dernier message: 11/05/2007, 09h27
  4. Recherche d'un algorithme pour calculer un Checksum
    Par noune40 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 23/11/2006, 10h46
  5. Calcul de checksum ?
    Par elitost dans le forum Windows
    Réponses: 14
    Dernier message: 21/01/2005, 13h29

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