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

Linux Discussion :

Cryptage avec md5sum


Sujet :

Linux

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 84
    Points : 58
    Points
    58
    Par défaut Cryptage avec md5sum
    Bonjour. Je m'arrache les cheveux depuis hier sur cette fonction qu'est md5sum, et je viens quémander votre aide.
    Le code :
    #!/bin/bash
    echo Entrez votre mot de passe :
    stty -echo
    read pw
    stty echo

    if [ `echo $pw | md5sum` != `grep $pw|md5sum junix/users` ] ; then
    echo Mot de passe invalide.
    fi
    Dans mon fichier junix/users j'ai le code md5 correspondant à la commande "echo gilbert | md5sum" (qui n'est autre que 8048d05dd630fcf02a98055799e82df4 -
    ). Je compare donc cette valeur hexadécimale à la valeur hexadécimale qui correspond à ce que j'ai entré au clavier ($pw).

    Seulement quand je teste ce programme et que j'entre le mot de passe, je programme ne se termine pas. Vous avez une idée ?

    Merci.

  2. #2
    Membre éclairé Avatar de BlaireauOne
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    492
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2007
    Messages : 492
    Points : 652
    Points
    652
    Par défaut
    La commande echo gilbert |md5sum renvoie :
    8048d05dd630fcf02a98055799e82df4 *-

    Pour que ça marche, il faut tester uniquement 8048d05dd630fcf02a98055799e82df4 comme suit :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    echo Entrez votre mot de passe :
    stty -echo 
    read pw
    stty echo
     
    if ! grep -q "$(echo $pw | md5sum | cut -d" " -f1)" junix/users ; then
           echo Mot de passe invalide
           exit 1
    fi

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 84
    Points : 58
    Points
    58
    Par défaut
    Merci pour ton aide, ça marche nikel Par contre j'ai besoin de quelques explications :
    -Que fait le if ! ?Je connais que le if [ ].
    -Et pourquoi le $ devant (echo $pw | md5sum | cut -d" " -f1) ?

    Merci d'avance

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 739
    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 739
    Points : 31 068
    Points
    31 068
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Jerepain Voir le message
    Je connais que le if [ ].
    Ben faut apprendre que l'instruction "if" permet de tester le résultat de toute commande Unix quelle qu'elle soit car toute commande renvoie un état "0/pas 0" considéré comme "V/F". Donc toi tu connais "if test" ou "if [ ]" qui en est un synonyme mais on peut mettre après "if" n'importe quelle commande Unix pourvu que cette commande renvoie un état V/F.
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ls $1
    then
        echo "Le fichier $1 existe
    else
        echo "Le fichier $1 n'existe pas
    fi
    Ensuite mettre "!" devant une commande permet d'inverser son statut V/F (ne marche qu'en bash et autres shells récents)

    Donc ici, BlaireauOne utilise le fait que "grep", quand il ne trouve pas, renvoie "faux". Et il demande donc un "if ! grep" pour construire une alternative sur le cas où grep ne trouve pas...

    Citation Envoyé par Jerepain Voir le message
    -Et pourquoi le $ devant (echo $pw | md5sum | cut -d" " -f1)?
    $(commande) est un synonyme de `commande` (toujours pour les shells récents car ça ne marche pas en Bourne Shell)

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 84
    Points : 58
    Points
    58
    Par défaut
    Merci beaucoup

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

Discussions similaires

  1. Cryptage avec oracle 9i
    Par simona dans le forum Oracle
    Réponses: 1
    Dernier message: 03/08/2007, 18h20
  2. cryptage avec RSA sous visual C++
    Par ryoussef19 dans le forum VC++ .NET
    Réponses: 17
    Dernier message: 30/05/2007, 11h10
  3. Protection d'un fichier par cryptage avec gpg
    Par Michaël dans le forum Sécurité
    Réponses: 1
    Dernier message: 30/01/2007, 15h10
  4. cryptage avec HSQLDB
    Par chti_juanito dans le forum Autres SGBD
    Réponses: 1
    Dernier message: 03/05/2006, 09h44
  5. Vérifier le téléchargement d'image iso de linux(avec MD5SUM)
    Par elhosni dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 01/08/2005, 18h41

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