Comment enregistrer les noms d'utilisateur et les mots de passe

mrassaa Messages postés 143 Date d'inscription lundi 15 mars 2010 Statut Membre Dernière intervention 12 juin 2013 - 19 juil. 2010 à 10:37
foliv57 Messages postés 420 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 15 juillet 2014 - 19 juil. 2010 à 22:15
Salut,

Je voudrais savoir comment stocker mes noms d'utilisateur et mes mots de passe avec vb. Je sais comment les stocker dans un fichier .txt mais on(la boîte dans la quelle je fais mon stage d'informatique) m'a dit que ce n'est pas sécurisé (et d'une part je le savais mais je ne connait pas d'autres méthodes).
Je voudrais, si c'est possible bien sur, avoir des liens ou des tuto assez simples avec lesquels je pourrais directement passer à la pratique.
Thanks

Forza Taraji!!

3 réponses

BOBO CALIMERO Messages postés 22 Date d'inscription vendredi 31 octobre 2003 Statut Membre Dernière intervention 2 novembre 2010
19 juil. 2010 à 11:52
Je ne suis pas très compétent en sécurité (loin de là) mais je reconnais que la méthode n'est pas sécurisé : ton fichier texte risque d'être lu par un utlisateur curieux qui aura toutes les infos de tous les autres utilisateurs.

Pré-enregistrer ces infos directement dans ton code n'est pas très bon non plus car, cela t'oblige à modifier ton code, le recompiler et le redistribuer à chaque modification des infos sur tes utilisateurs.

Je me suis également posé la question de savoir comment sécuriser ce genre d'infos. Il existe certainement des méthodes de cryptage très performantes que je ne connais pas. Perso j'ai envisage la méthode suivante :

Je récupère un fichier existant sur mon ordinateur, le genre de fichier que personne n'aurait envie de lire (par exemple, un DLL histoire de décourager les curieux...). Je copie ce fichier (ne pas le déplacer puisqu'il est utile à une autre appli en principe) dans le repertoire de mon application. Je modifie ce fichier copié : j'insère les noms et mots de passe en plein milieu de ce fouilli de caractère, par exemple à partir du caractère n°1683. Dans le code de mon programme, j'indique que les informations de mes utilisateurs sont situés dans mon fichier DLL (factice), à partir du caractère 1683.

En cas de modification des infos utilisateurs, modifie simplement ton fichier factice.

On peut pousser le vice un peu plus dans un deuxième temps : plutôt que d'imposer le début de tes infos (caractère 1683) dans ton code, tu peux également préciser que le 15ème mot de ton fichier factice (le mot est par exemple 1683...) donne l'emplacement du début des infos utilisateurs...

Espérant t'avoir un peu aidé.
0
foliv57 Messages postés 420 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 15 juillet 2014 9
19 juil. 2010 à 22:12
Bonjour,

Le stockage de données sensibles est un point important de la programmation.
Il est évident que stocker les données en clair n'est pas une bonne solution.

Il faut aussi éviter de placer des informations dans la source du code car le .net est très facilement décompilable.

Une première approche assez simple et courante est le hashage des mots de passe.

Voici un exemple de hashage utilisant l'algorithme sha1 :
Imports System.Security.Cryptography
Imports System.IO
Imports System.Text

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  
  Dim monPass As String = "hello"
  
  'Création de l'objet pour le hashage
  Dim sha As New SHA1CryptoServiceProvider()
  
  'Hashage de la chaine de caractère   
  Dim hashBytes() As Byte = sha.ComputeHash(Encoding.ASCII.GetBytes(monPass))

  'On peut même par la suite le convertir en une représentation sous forme de chaine de caractères qu'on pourra stocker cette fois dans un fichier
  Dim hashCode As String = ""
  For Each b As Byte In res
     hashCode &= b.ToString("X4")
  Next
        
End Sub


Le hashage n'est pas un cryptage. Il n'est donc "pas réversible". Pour controler que l'utilisateur a bien saisie le bon mot de passe, on hash la saisie de l'utilisateur et on la compare à notre hash stocké.
0
foliv57 Messages postés 420 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 15 juillet 2014 9
19 juil. 2010 à 22:15
correction de copier coller :
Dim hashCode As String = ""
For Each b As Byte In hashBytes
   hashCode &= b.ToString("X4")
Next
0
Rejoignez-nous