Crypter mot de passe, stocker et decrypter le mot depasse [Résolu]

- - Dernière réponse :  Utilisateur anonyme - 6 mai 2013 à 19:35
Bonjour,

J'ai créer une application mais le probleme c'est que je n'arrive pas à coder une chose.

Je voudrais que l'utilisateur entre son mot de passe et que l'application crypte le mot de passe puis l'enregistre dans un fichier externe.

Mais je voudrais que lorsque l'application est réouverte elle decrypte le mot de passe et le met dans une textbox.

Si cela ne vous semble pas assez claire n'hésitez pas à me le dire.

Merci d'avance
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
3
Merci
Salut

Tout dépend de qui/de quoi tu veux protéger ce mot de passe.

Si c'est de l'oeil humain, tu peux faire un truc simple du genre :
- Codage de chaque char en son code Ascii unicode
- Ajout ou suppression d'un chiffre fixe à chaque code Ascii
- Transforme tout ça en une chaine composée des équivalents Hexa
- Histoire de décourager les petits malins, tu peux ensuite convertir tout ça en base 64.
L'opération inverse est donc facile à refaire, dans le bon ordre.

Si vraiment tu cherches une protection "chiffrée" puissante, suis le conseil de ucfoutu : recherche des exemples de chiffrement symétriques (réversibles)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)

Merci cs_Jack 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_Jack
3
Merci
Bonjour,
ou encore insérer des caractères aléatoirement dans le mot de passe, comme ça le mot de passe crypté n'est jamais le même.

regarde le bout de code que je viens de faire:

    Function Crypte(ByVal MotDePasse As String) As String
        Dim Str As String = MotDePasse
        Dim Emplac As String = ""
        Dim St As String = ""
        Dim Txt As String = ""
        Dim Nombre As Integer = CInt(MotDePasse.Length / 2)
        Dim Tabl(Nombre) As Integer
        Dim Rt, Qs As Integer
        Dim Cryp As String = ""

        For Rt = 0 To Nombre - 1
            Randomize()
            Qs = CInt(Int((Str.Length * Rnd())))
            Do While Str.Contains(st) = True
                Randomize()
                st = Chr(CInt(Int((26 * Rnd()) + 65)))
            Loop
            Str = Str.Insert(Qs, st)
            Txt &= St
        Next

        For Rt = 0 To Txt.Length - 1
            Qs = Str.IndexOf(Txt.ToCharArray(Rt, 1))
            Emplac &= Format(Qs, "000")
        Next
        Str &= "." & Emplac
    
        For Rt = 0 To Str.Length - 1
            Qs = Asc(Str.ToCharArray(Rt, 1))
            Cryp &= Format(Qs, "000")
        Next
        Return Cryp
    End Function

    Function DeCrypte(ByVal MDPCrypte As String) As String
        Dim MDP As String = ""
        Dim St As String = ""
        Dim Str As String = ""
        Dim Rt As Integer = 0

        For Rt = 0 To MDPCrypte.Length - 1 Step 3
            St &= Chr(CInt(Val(MDPCrypte.ToCharArray(Rt, 3))))
        Next
        MDP = Split(St, ".")(0)
        Str = Split(St, ".")(1)
        St = ""
        Dim Found As Boolean
        For i As Integer = 0 To MDP.Length - 1
            Found = False
            For Rt = 0 To Str.Length - 1 Step 3
                If i CInt(Val(Str.ToCharArray(Rt, 3))) Then Found True
            Next
            If Found = False Then St &= MDP.ToCharArray(i, 1)
        Next

        Return St
    End Function

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'Le seul caractère interdit dans le mot de passe est "." (point)
        Dim Pass As String = ("oùÉpassémonpass")
        MsgBox("Mot de passe non crypté: " & Pass & " - Mot de passe crypté: " & Crypte(Pass))
        MsgBox("En décryptant : " & DeCrypte("070111249201112097115115233109111110086074067089112097087073084115115046048049053048049052048050048048048048048049056048049051048049057048049050"))

end sub


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique

Merci Utilisateur anonyme 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de Utilisateur anonyme
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Bonjour,
Utilise le moteur de recherche de ce forum !
Les exemples de chiffrement ne manquent pas !
Il est par contre exclus de traiter sur ce forum de quoi déchiffrer un mot de passe ! Lis le règlement.
Si ce n'est que pour vérifier la validité d'un mot de passe : le principe est inversement clair : on rechiffre la saisie de l'utilisateur et on vérifie quie le résultat de ce chiffrement est celui attendu (du mot chiffré) !


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
0
Merci
Merci pour vos reponse, je pense que ton code acive va m'être tres utile =).
Commenter la réponse de baba5180
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Oserais-je vous dire ce que je fais généralement ?
Bon === >>>
- je ne stocke qu'un seul élément chiffré
- cet élément est chiffré à l'aide, à la fois, du nom/utilisateur et du mot de passe correspondant
- le nom/utilisateur intervient lui-même dans le mode de chiffrement
- je n'ai ainsi qu'une seule chaine de caractères chiffrée, sans que quiconque puisse faire le moindre lien entre utilisateur de mot de passe chiffré
- le chiffrement que je fais est irréversible (utilisation de restes de divisions)
- lorsque l'utilisateur saisit son nom et son mot de passe, je rechiffre et compare le résultat avec ce que j'ai en stock. Si existe ===>> amen. Si n'existe pas ===>> je jette
- je ne dis JAMAIS que le nom/utilisateur saisi n'existe pas (si n'existe pas). je laisse forcer à saisir également le mot de passe. Et je ne lui dis JAMAIS non plus laquelle de ces deux saisies n'est pas la bonne.
A chacun ses méthodes de protection, hein ...
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
0
Merci
Bonjour ucfoutu,
je ne dis JAMAIS que le nom/utilisateur saisi n'existe pas (si n'existe pas). je laisse forcer à saisir également le mot de passe. Et je ne lui dis JAMAIS non plus laquelle de ces deux saisies n'est pas la bonne.


Oui nous sommes "obligés" de nos jours de renforcer la sécurité, cependant, moi par exemple, l'utilisateur de vbfrance, mais ça fait deux ans que je ne me suis pas connecté.
Le jour où j'ai besoin d'un code pour mon PFE:
1) Je ne me rappelle pas de mon pseudo
2) Je ne me rappelle pas de mon mot de passe

Moi, le vrai utilisateur j'aimerais qu'on me dise ce qui ne va pas dans mes identifiants.

Du coup pour ne pas "me prendre la tête" je créé un autre compte, qui du coup rempli le serveur pour rien... va savoir quel est la bonne méthode....

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
0
Merci
Salut à tous,

Sinon, l'espace de noms System.Security.Cryptography contient tous les éléments nécessaires pour du chiffrement efficace que ce soit pour une chaîne de caractères ou pour un fichier. Et tout ceci est réalisable avec une facilité incroyable pour le plus grand plaisir des touts petits et des plus grands.
Commenter la réponse de Utilisateur anonyme
0
Merci
Salut banana,
System.Security.Cryptography =>> réponse acceptée!

Pourquoi on a toujours tendance à travailler à l’ancienne ???

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme
0
Merci
Je poste ce message car mon probleme est résolu merci pour votre aide et surtout merci a acive pour son code =).



Ps: comment mettre en résolu ?
Commenter la réponse de baba5180
0
Merci
Ca y est c'est fait

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
Commenter la réponse de Utilisateur anonyme

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.