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

VB.NET Discussion :

Stocker un mot de passe encrypté dans la base de registre Windows [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Par défaut Stocker un mot de passe encrypté dans la base de registre Windows
    Bonjour à tous,
    J'aurais besoin de votre aide,

    J'utilise ce code pour encrypter et qui me retourne un tableau de byte() mais je ne sais pas stoker ce tableau dans la base de registre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      Private Function PassSHA(MotDePasse As String) As Byte()
            Dim encoder As New System.Text.UnicodeEncoding
            ' On obtient un tableau à partir du mot de passe entré:
            Dim password() As Byte = encoder.GetBytes(MotDePasse)
            ' Pour crypter le mot de passe:
            Dim sha As New Security.Cryptography.SHA256Managed
            ' On obtient le mot de passe crypté:
            Return sha.ComputeHash(password)
        End Function
    Je ne sais stoker que du texte avec le code ci-après :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      Public Sub WriteMotDePasse(MotDePasse As String)
            Dim Key As Microsoft.Win32.RegistryKey
            Dim DateJour As DateTime = Date.Now
            Key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Software", True)
            Key = Key.CreateSubKey("monchemin")
            Key.SetValue("MotDePasse", MotDePasse)
            Key.SetValue("Date", DateJour)
        End Sub
    J'ai vu que l'on pouvez stoker autre chose que du texte dans la base de registre comme du DWORD, QWORD et BINARY mais je ne suis pas du tout à l'aise avec ces types de données.

    Aussi, comme je ne pense pas que le MotDePasse puisse être décryptable il faudra que je compare directement les données cryptées pour savoir si c'est le bon mot de passe.

    Pouvez vous m'aider svp.

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 978
    Par défaut
    Tu peux toujours convertir ton tableau de bit en base64 pour obtenir une chaine.
    Cela implique simplement qu'il faudra faire l'opération inverse en lecture.

    Où tu peux directement enregistrer ton contenu en binaire car c'est un simple Enum qui détermine le format.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim data As Byte() = PassSHA("popo")
    Microsoft.Win32.Registry.SetValue("HKEY_CURRENT_USER\SOFTWARE\APPNAME", "Data", data, Microsoft.Win32.RegistryValueKind.Binary)

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2012
    Messages
    640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mars 2012
    Messages : 640
    Par défaut
    Merci beaucoup Popo,
    Je viens de finir mes tests, ca fonctionne parfaitement bien...

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

Discussions similaires

  1. [MySQL] tester si identifiant et mot de passe présents dans la base mysql
    Par nonesofar dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 22/03/2016, 22h02
  2. Réponses: 1
    Dernier message: 25/12/2015, 14h34
  3. Réponses: 2
    Dernier message: 17/03/2008, 10h06
  4. Réponses: 4
    Dernier message: 30/01/2006, 19h50
  5. Réponses: 4
    Dernier message: 02/11/2005, 16h24

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