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 :

Pb hachage (MD5..) avec Kellerman Encryption Library


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné

    Homme Profil pro
    Chef de Projet ATIC
    Inscrit en
    Novembre 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Chef de Projet ATIC
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2005
    Messages : 274
    Par défaut Pb hachage (MD5..) avec Kellerman Encryption Library
    Hello,

    Pour les besoins d'un logiciel que je ré-écrit (passage de Delphi à C#), j'ai décidé d'utiliser la librairie de cryptage Kellerman (version trial 30 jours).

    J'essaie de tester pour l'instant les méthodes de Hash mais j'obtiens des résultats vraiment bizarres. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Encryption cryptage = new Encryption();
    return cryptage.HashString(HashProvider.MD5, "toto");
    me retourne "9x2+UmKKP4OnerSUgXUlxg==" au lieu de "f71dbe52628a3f83a77ab494817525c6".

    Ce qui me trouble surtout c'est que normalement le résultat est entièrement en hexadécimal.

    Je débute tout juste en C#, mais d'après la doc et les exemples () je ne vois pas où se trouve l'erreur...

    Quelqu'un connaitrait-il cette librairie ou aurait le courage de la tester ?

    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 47
    Par défaut
    Salut

    Il faut utiliser la méthode retournant un résultat en hexadécimal, je ne connais pas le C# mais c'est l'équivalent de la méthode hexdigest() par rapport à digest() en Python par exemple

  3. #3
    Membre chevronné

    Homme Profil pro
    Chef de Projet ATIC
    Inscrit en
    Novembre 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Chef de Projet ATIC
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2005
    Messages : 274
    Par défaut
    Merci pour cet indice.

    J'y avais pensé en utilisant cette conversion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    byte[] byteHash = Encoding.UTF8.GetBytes(cryptage.HashString(HashProvider.MD5, "toto"));
    String hexHash = "";
    for (int i = 0; i < byteHash.Length; i++)
       hexHash += byteHash[i].ToString("X2");
    mais là encore le résultat n'est pas bon ("3978322B556D4B4B50344F6E657253556758556C78673D3D").

    A moins que la fonction HexDigest() fasse un autre traitement que la conversion en hexa caractère par caractère ? Mais je n'ai rien trouvé d'équivalent dans C#

    D'ailleurs, la longueur de la chaine de caractère est plus grande (24) que le vrai résultat hexa (16)

  4. #4
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 47
    Par défaut
    J'ai trouvé plusieurs ressources sur le web concernant le hash md5 en C#, malheureusement aucune avec ta librarie

    http://www.ibt4im.com/?guid=20040923142406

    Avec en particulier ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    private string HashString(string Value)
    {
            System.Security.Cryptography.MD5CryptoServiceProvider x = new System.Security.Cryptography.MD5CryptoServiceProvider();
            byte[] data = System.Text.Encoding.ASCII.GetBytes(Value);
            data = x.ComputeHash(data);
            string ret = "";
            for (int i=0; i < data.Length; i++)
                    ret += data[i].ToString("x2").ToLower();
            return ret;
    }
    Sinon tu peux toujours utiliser OpenSSL http://www.giveawayoftheday.com/free...09/30/openssl/

    Un problème similaire au tien : http://bytes.com/forum/thread224140.html

    Et encore un code : http://csharp.codenewbie.com/article...sh-Page_1.html

    En esperant t'avoir aidé

  5. #5
    Membre chevronné

    Homme Profil pro
    Chef de Projet ATIC
    Inscrit en
    Novembre 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Chef de Projet ATIC
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2005
    Messages : 274
    Par défaut
    J'ai fini par trouver à force de tester toutes les fonctions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    return cryptage.BytesToHexString(cryptage.HashBytes(HashProvider.MD5, Encoding.UTF8.GetBytes("toto")));
    Il faut faire un hachage d'un tableau de bytes pour que cela fonctionne... Ils devraient mieux l'expliquer sur leur site !

    [edit]
    Merci pour les liens, mais il n'y a pas que le MD5, j'ai besoin d'une tonne de méthodes pour du hachage et cryptage cipher car j'avais laissé tous ces choix à l'utilisateur.

    [edit2]
    Grâce à un de tes liens, j'ai compris que le premier résultat était en base64 et qu'il fallait le convertir en un tableau de bytes.

  6. #6
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 47
    Par défaut
    Content que ça t'aies aidé.
    Pourrais tu me donner un lien pour voir à quoi ressemble ton programme ? Il m'intéresse car je programme aussi un logiciel se servant d'algorithmes tel que le md5 ou le sha512 etc. Si tu veux passe le moi en MP

  7. #7
    Membre chevronné

    Homme Profil pro
    Chef de Projet ATIC
    Inscrit en
    Novembre 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Chef de Projet ATIC
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2005
    Messages : 274
    Par défaut
    Le programme d'origine ce trouve ici.

    Malheureusement j'ai perdu les sources Delphi suite à un crash de mes 2 disques durs... Après environ plus de 100 mails d'utilisateurs me questionnant, je me suis donc décidé à le ré-écrire en utilisant un langage mieux intégré à Windows et en essayant de réutiliser la base de données Access déjà créée (pour les utilisateurs existants). Cette fois ci je n'attendrai pas la version finale pour publier les sources, elles le seront à chaque fois

    N'hésite pas à me MP si tu as des questions sur le fonctionnement du cryptage utilisé.

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    je ne vois pas trop l'intérêt d'utiliser une librairie payante pour calculer le MD5, vu qu'il y a tout ce qu'il faut dans le namespace System.Security.Cryptography...

  9. #9
    Membre chevronné

    Homme Profil pro
    Chef de Projet ATIC
    Inscrit en
    Novembre 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Chef de Projet ATIC
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2005
    Messages : 274
    Par défaut
    Comme je l'ai expliqué, je n'utilise pas que le MD5 (sinon j'utiliserai ce qui est déjà fournit). J'ai pris l'exemple MD5 car c'est le plus courant pour du hachage.

    Il me fallait pour le hachage :

    MD5 128bits
    RIPE 160bits
    SHA 256bits
    SHA 512bits
    HAVAL 256bits

    et pour le cryptage cipher :

    AES (Rijndael)
    BlowFish
    Mars
    Serpent
    TwoFish

    La librairie en question propose tous les hash et la majorité des cipher plus bien d'autres pour une somme modique (moins de 30€).

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

Discussions similaires

  1. decrypter un hachage MD5 avec c#
    Par dalilnet dans le forum Général Dotnet
    Réponses: 9
    Dernier message: 13/11/2013, 17h37
  2. Appliquer la fonction de hachage MD5 à un texte
    Par 9tita dans le forum Sécurité
    Réponses: 2
    Dernier message: 01/05/2011, 16h13
  3. Simplifiez REST et Ajax avec Robusta Web Library
    Par nicorama dans le forum REST
    Réponses: 3
    Dernier message: 03/09/2009, 15h22
  4. Sha1 & md5 avec Java
    Par mithrendil dans le forum Sécurité
    Réponses: 3
    Dernier message: 16/01/2008, 15h57

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