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 :

Transposer deux lignes de Python en C


Sujet :

C

  1. #1
    Membre confirmé Avatar de acryline
    Profil pro
    Inscrit en
    Août 2006
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 200
    Par défaut Transposer deux lignes de Python en C
    Bonjour,
    je suis en train de coder un petit programme en GTK + (C) pour installer OpenSim en mode graphique. Mais pour créer un utilisateur il faut crypter le mot de passe avant de le mettre dans la base de données.

    J'ai trouvé ce code qui le fait mais il est écrit en python et franchement je n'ai pas de notion dans le domaine même si je comprends un petit peu j'ai du mal. Voici ce code :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     osprofile.passwordSalt = '%016x' % random.getrandbits(128)
     osprofile.passwordHash = hashlib.md5('%s:%s' % (hashlib.md5(profile_data['password']).hexdigest(),osprofile.passwordSalt)).hexdigest()
    Alors si quelqu'un pouvait me traduire ces deux lignes en C ou en PHP ça serait sympa.
    Je ne vois pas comment est défini passwordSalt , quelle fonction de génération de nombre aléatoire utiliser et que vient faire '%016x' % devant la fonction.
    Ensuite pourquoi utiliser hexdigest() ?
    Et pourquoi '%s:%s' % ..?

    Merci pour votre aide

  2. #2
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     osprofile.passwordSalt = '%016x' % random.getrandbits(128)
    - random.getrandbits(128): retourne un nombre aléatoire sur 128 bit (coté implémentation, il s'agit d'un mersenne twister).

    - '%016x': retourne le nombre aléatoire en une chaine de caractère hexadécimale sur 16 octets.

    Le résultat est mis dans le membre "passwordSalt" de la classe "osprofile".

    exemple:

    >>> import random
    >>> '%016x' % random.getrandbits(128)

    '6fd56bfea909e21b131bf61456d9877f'
    --------------
    Pour la suite il faut décomposer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    osprofile.passwordHash = hashlib.md5('%s:%s' % (hashlib.md5(profile_data['password']).hexdigest(),osprofile.passwordSalt)).hexdigest()
    hashlib.md5('%s:%s' % x, y).hexdigest()

    Retourne le hash MD5 (chaine de caractère) de la chaine "x:y" où:

    x vaut: hashlib.md5(profile_data['password']).hexdigest()
    y vaut: osprofile.passwordSalt

    y a déjà été vu. x est le hash MD5 (chaine de caractère) de profile_data['password'] où:

    - profile_data est un dictionnaire.
    - 'password' est une clé du dictionnaire.

    => donc: profile_data['password'] récupère la valeur de la clé 'password' dans le dictionnaire profile_data.

    Le résultat du hash MD5 de "x:y" est mis dans osprofile.passwordHash.

Discussions similaires

  1. Traduire deux lignes de Python
    Par acryline dans le forum Langage
    Réponses: 2
    Dernier message: 12/08/2010, 21h35
  2. Transposer deux lignes de Python en C ou Php
    Par acryline dans le forum Général Python
    Réponses: 4
    Dernier message: 12/08/2010, 15h30
  3. Réponses: 5
    Dernier message: 09/01/2005, 19h54
  4. [VB.NET] DataGrid : titre des colonnes sur deux lignes
    Par Lahouari dans le forum Windows Forms
    Réponses: 6
    Dernier message: 06/12/2004, 14h44
  5. Deux lignes sur un TButton
    Par bml dans le forum Composants VCL
    Réponses: 2
    Dernier message: 24/07/2003, 11h17

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