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

Bibliothèques Discussion :

Hash


Sujet :

Bibliothèques

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 83
    Points : 55
    Points
    55
    Par défaut Hash
    Bonjour,

    J'aimerai reproduire le comportement d'encryption du plugins FOSUser de symfony, voici le code en php:
    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
     
    $pass = 'monpass en clair';
    $salt = 'salt stocké en bdd';
    $iterations = 5000; // Par défaut
    $result = '';
    $salted = $pass.'{'.$salt.'}';
     
    $digest = hash('sha512', $salted, true);
     
    for ($i = 1; $i < $iterations; $i++) {
    	$digest = hash('sha512', $digest.$salted, true);
     
    }
    $cryptedPass = base64_encode($digest);
    echo $cryptedPass;
    Cependant, avec la bibliotheque je peut pas faire d'update apres un final. Ce dernier permet de recuperer la valeur du tableau. Pouvez -vous m'aider a reproduire cet effet?

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 674
    Points : 188 663
    Points
    188 663
    Par défaut


    Mettre ton code C++ aurait pu être utile .

    Chaque appel à hash() en PHP correspond à un appel de QCA::Hash::final() ; de là, tu récupères un conteneur avec le hash : il suffit d'en récupérer les données, d'y ajouter ce que tu veux, puis d'appeler QCA::Hash::clear() et d'injecter les nouvelles données à hasher avec QCA::Hash::update(). Cf. http://qt.developpez.com/faq/?page=b...s-qca#qca-hash et http://qt.developpez.com/faq/?page=b...oire-securisee et la doc (http://delta.affinix.com/docs/qca/classQCA_1_1Hash.html).

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 83
    Points : 55
    Points
    55
    Par défaut
    Bonjour,

    merci de ta reponce, j'ai mis en place ce que tu as dit. Voici le code c++:
    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
     
    QString encryptPassword(QString pass, QString salt)
    {
        QString               salted = pass + '{' + salt + '}';
        const char            *algo = "sha512";
     
        QCA::Initializer init = QCA::Initializer();
        if (!QCA::isSupported(algo))
            {
                qDebug() << algo << " not supported - "
                            "please check if qca-ossl plugin"
                            "installed correctly !";
                return "";
            }
        QCA::Hash hasher(algo);
        hasher.update(QCA::SecureArray(salted.toStdString().c_str()));
        QCA::SecureArray res = hasher.final();
        for (int i = 1; i < 5; i++ )
        {
            std::cout << "-------------------------------------------" << std::endl;
            std::cout << res.data() << std::endl;
            std::cout << "-------------------------------------------" << std::endl;
            hasher.clear();
            std::string o(res.data());
            o += salted.toStdString().c_str();
    /*        std::cout << "-------------------------------------------" << std::endl;
            std::cout << o << std::endl;
            std::cout << "-------------------------------------------" << std::endl;*/
            hasher.update(QCA::SecureArray(o.c_str()));
            res = hasher.final();
        }
        return "";
    }
    Cependant, je n'arrive pas au meme resultat. qu'ai je fais mauvais?
    En effet, voici le resultat en php:
    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
     
    ------------------------------------------
    \311^?7^N\246\323^Vx\313R\254\376\315b\377^EX\204\267\355\332^_\344\214\357D\373f\321\216\355$^P\331\305\255\315\357\266<^G
    ^\\2376m\310\215|\362^L0\321\222\212\207\251\326\2352;3f
    ------------------------------------------
    ------------------------------------------
    \331+m4\225n^U\256E^[\200       |7\206\332#@\374\233r\351\303@\377.\235r\321\3575\301^Wu=\362^H,^H^@\305u^]^G^WN\304\343J\223^P\344>K^H\345\320\371;y\252y\227!
    ------------------------------------------
    ------------------------------------------
    1\3221A\222\254\261\313*&\216z^Br:#>\360\342\216\302S{\243\363\370-:^O\232\334\306@     .\224h\277Q\300^_\232\327\352\361$1\247\327M^X\346\344\373\314^F*\337a!\207\220\
    \305\311
    ------------------------------------------
    ------------------------------------------
    7^S\314\330^Z@\201\364\346\274\312^^Z~:T\2344h7W1*\3223G\351^?~\245_\2003{^CE^LS\213\266\3223st\305\326\337\3268M\374Yt-^U\246{7\227\252S\232L\313
    ------------------------------------------
    et voici le resultat en c++:
    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
     
    -------------------------------------------
    \311^?7^N\246\323^Vx\313R\254\376\315b\377^EX\204\267\355\332^_\344\214\357D\373f\321\216\355$^P\331\305\255\315\357\266<^G
    ^\\2376m\310\215|\362^L0\321\222\212\207\251\326\2352;3f
    -------------------------------------------
    -------------------------------------------
    \331+m4\225n^U\256E^[\200       |7\206\332#@\374\233r\351\303@\377.\235r\321\3575\301^Wu=\362^H,^H
    -------------------------------------------
    -------------------------------------------
    \244\330\210\256\242\311\215\374G\337\301dH\212^V~d\246,\261w\316h\201F\302@L\230K\373\217^[t^S\267^T^C^R\212m$\351m\221\3274^Zhk`4)^C\276^K&3\227\267\332\311\252\221
    -------------------------------------------
    -------------------------------------------
    D^T^Dm\375\240\242^T\2035^E\215^E`\227G\256\306\253\300^Sd^X\273\235g\246^Vk\240\3659^\272\314t\216\251\211+\337\254&\254\302k\250\265\217gKs\335\347EM?\262^CG2\344.\3\
    71
    -------------------------------------------
    Merci d'avance

Discussions similaires

  1. [langage] reference et hash complex
    Par mlo dans le forum Langage
    Réponses: 4
    Dernier message: 07/07/2004, 17h46
  2. [langage] hash
    Par giverny dans le forum Langage
    Réponses: 3
    Dernier message: 12/08/2003, 11h27
  3. [langage] probleme avec un hash de hash
    Par planetevoyage dans le forum Langage
    Réponses: 4
    Dernier message: 06/06/2003, 12h55
  4. [langage] Créé un hash dans un fichier...
    Par Smooky dans le forum Langage
    Réponses: 3
    Dernier message: 26/03/2003, 08h49
  5. Tables de hash
    Par miss8 dans le forum C
    Réponses: 2
    Dernier message: 16/11/2002, 17h44

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