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 :

[C#] : Cryptage MD5


Sujet :

C#

Vue hybride

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

    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 175
    Par défaut [C#] : Cryptage MD5
    Bonjour,

    les mots de passe permettant d'accéder aux bases de données sont renseignés en clair dans le fichier de configuration de mon application.

    Je souhaiterais les protéger. Je voulais m'orienter vers un cryptage MD5.
    J'ai trouvé les codes suivants sur MSDN2 mais je ne sais pas comment faire pour ne pas renseigner tôt au tard le mot de passe dans mon appli.
    Pouvez-vous m'aider ?

    Merci et bonne journée.

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
            public static string Crypter(string p_input)
            {
                    // Source : http://msdn2.microsoft.com/fr-fr/library/system.security.cryptography.md5(VS.80).aspx
     
                    // Create a new instance of the MD5CryptoServiceProvider object.
                    MD5 md5Hasher = MD5.Create();
     
                    // Convert the input string to a byte array and compute the hash.
                    byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(p_input));
     
                    // Create a new Stringbuilder to collect the bytes
                    // and create a string.
                    StringBuilder sBuilder = new StringBuilder();
     
                    // Loop through each byte of the hashed data 
                    // and format each one as a hexadecimal string.
                    for (int i = 0; i < data.Length; i++)
                    {
                        sBuilder.Append(data[i].ToString("x2"));
                    }
     
                    // Return the hexadecimal string.
                    return sBuilder.ToString();
            }
     
            // Verify a hash against a string.
            public static bool verifyMd5Hash(string p_input, string p_hash)
            {
                    // Source : http://msdn2.microsoft.com/fr-fr/library/system.security.cryptography.md5(VS.80).aspx
     
                    // Hash the input.
                    string hashOfInput = Crypter(p_input);
     
                    // Create a StringComparer an comare the hashes.
                    StringComparer comparer = StringComparer.OrdinalIgnoreCase;
     
                    if (0 == comparer.Compare(hashOfInput, p_hash))
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
            }

  2. #2
    Membre Expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Par défaut
    Je te propose une table dont l'accès en lecture est autorisé pour tous, qui contient le mot de passe crypté MD5. L'appli va lire le MD5, le décrypte et l'emploie pour accéder aux BD sensibles.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 101
    Par défaut
    On ne peut pas "décrypter" du MD5. C'est le Hash d'une chaine de caractères, et l'opération n'est pas réversible... Après, tu pourrais implémenter l'algo de Vigenère, pour crypter ton fichier de conf. Au lancement de l'appli, suffit de demander la clef à l'utilisateur, un coup de Vigenère et c'est bon
    C'est pas incassable, mais moins tu crypte d'information, moins y a de risques que ça pète. L'idéal étant d'utiliser une clef aussi grande que les chaines de caractères à crypter...
    http://fr.wikipedia.org/wiki/Vigen%C3%A8re

  4. #4
    Membre Expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Par défaut
    Hum en effet, j'ai répondu un peu hativement sur le md5 (faut dire que ce n'est plus tout frais dans ma tete )

    Donc dans ma réponse précédente, remplacer MD5 par tout algo reversible.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 8
    Par défaut
    Tu fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string mdpCrypter = Crypter("mon mot de passe");

  6. #6
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    L'utilisation de MD5 est valide lorsque l'on a pas besoin du mot de passe en clair, comme pour une authentification lors de l'accès à une application. On vérifie alors que le hash du mot de passe saisi correspond au hash attendu. A ce moment le mot de passe saisi est correct.

    Dans ton cas c'est inutilisable car tu as besoin du mot de passe en clair. Il faudrait plutôt voir pour chiffrer ton fichier de configuration. Regarde ce sujet à tout hasard.

    Au passage, on ne parle pas de cryptage/crypter mais de chiffrement/chiffrer

Discussions similaires

  1. [C#]Cryptage MD5
    Par dumser1 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 04/02/2008, 12h17
  2. Algo pour Cryptage Md5
    Par ..::snake::.. dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 25/05/2007, 00h46
  3. Comment utiliser le cryptage MD5 (Dimka Maslov) ?
    Par bds2006 dans le forum Delphi
    Réponses: 3
    Dernier message: 08/06/2006, 17h24
  4. [Sécurité] Cryptage MD5 et sécurité ?
    Par renaudjuif dans le forum Langage
    Réponses: 11
    Dernier message: 01/05/2006, 01h52
  5. Validation formulaire et cryptage md5
    Par nerick dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/01/2006, 10h49

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