Signaler

Contrôle de la validité du mot de passe sous VBA MS ACCESS [Résolu]

Posez votre question pe59189 5Messages postés samedi 26 août 2017Date d'inscription 4 septembre 2017 Dernière intervention - Dernière réponse le 4 sept. 2017 à 17:17 par pe59189
Bonjour,

J'aimerais écrire un fonction sous VBA MS Access pour vérifier la validité d'un mot de passe.

Les conditions sont les suivantes :

- 8 caractères au minimum
- au moins une lettre MAJUSCULE
- au moins une lettre minuscule
- au moins un chiffre
- au moins un les caractère spécial

Cordialement.
Utile
+0
plus moins
bonsoir, je pense que c'est réalisable. as-tu une question?
pe59189 5Messages postés samedi 26 août 2017Date d'inscription 4 septembre 2017 Dernière intervention - 1 sept. 2017 à 07:07
Bonjour,

Je souhaite savoir comment coder.

Cdlt,
Répondre
yg_be 3368Messages postés lundi 9 juin 2008Date d'inscription ContributeurStatut 22 septembre 2017 Dernière intervention - 1 sept. 2017 à 09:15
à tout hasard:
découvrir la programmation Access
Répondre
Donnez votre avis
Utile
+0
plus moins
Bonjour pe59189,

Je te propose ce code VBA :


Option Explicit

Function VérifPW(pw As String) As Boolean
  Const CSP As String * 14 = "#!&%$£µ§()[]{}"
  Dim c1 As String * 1, c2 As Byte
  Dim f1 As Byte, f2 As Byte, f3 As Byte, f4 As Byte
  Dim lng As Byte, i As Byte: lng = Len(pw)
  If lng < 8 Then Exit Function
  For i = 1 To lng
    c1 = Mid$(pw, i, 1): c2 = Asc(c1)
    Select Case c2
      Case 65 To 90: f1 = 1    ' majuscule 'A' à 'Z'
      Case 97 To 122: f2 = 1   ' minuscule 'a' à 'z'
      Case 48 To 57: f3 = 1    ' chiffre '0' à '9'
      Case Else:               ' caractère spécial
        If InStr(CSP, c1) > 0 Then f4 = 1
    End Select
  Next i
  If f1 + f2 + f3 + f4 = 4 Then VérifPW = True
End Function

Sub Essai()
  If Not VérifPW("aBc#e0gh") Then Exit Sub
  MsgBox "Password : ok => faire la suite"
End Sub


⚠  Tu dois adapter CSP : liste des caractères spéciaux ;
il faut aussi ajuster le « * 14 » selon le nombre de caractères
de CSP ; exemple : si tu ajoute 3 autres caractères spéciaux,
mets les dans la chaîne CSP et : * 17

Merci de me dire si ça te convient.

Cordialement
 
yg_be 3368Messages postés lundi 9 juin 2008Date d'inscription ContributeurStatut 22 septembre 2017 Dernière intervention - 2 sept. 2017 à 10:39
bonjour, je dirais que ceci vérifie, au moment de "créer" un mot de passe, qu'il est conforme à quelques règles. le but de ces règles est de rendre le mot de passe complexe, difficile à deviner.
il s'agit donc plutôt d'un test de conformité (de la complexité du mot) qu'un test de validité.
Répondre
fabien25000 194Messages postés mercredi 5 octobre 2016Date d'inscription 22 septembre 2017 Dernière intervention - 2 sept. 2017 à 11:04
Je comprend merci à vous 2 pour vos éclaircissements.
Sans vous embêter à l'écrire un code permettant d'éviter l'écrasement, la suppression ou le crakage d'un mdp est possible?
Répondre
yg_be 3368Messages postés lundi 9 juin 2008Date d'inscription ContributeurStatut 22 septembre 2017 Dernière intervention - 2 sept. 2017 à 11:13
je suppose que ta question concerne la gestion du mot de passe par le serveur, pas par le client.
je pense que ces techniques permettent de réduire le risque d'écrasement, de suppression ou de crakage:
- ne jamais enregistrer le mot de passe tel quel, plutôt enregistrer le résultat du hachage du mot de passe
- enregistrer ce résultat haché à un endroit peu accessible
- encrypter le transfert du mot de passe entre le client et le serveur
Répondre
fabien25000 194Messages postés mercredi 5 octobre 2016Date d'inscription 22 septembre 2017 Dernière intervention - 2 sept. 2017 à 14:46
en fait non, je parlais des mots de passe qui sont censés protéger la ou les feuilles, la structure du classeur ou le code VBA, j'avais entendu dire que ces derniers étaient faciles à contourner, je m'y suis interressé et c'est même plus que simple (30 secondes grand max pour déprotéger une feuille) donc je continue mes recherches...
peut être devrais-je ouvrir un nouveau sujet pour ne pas trop polluer celui de pe59189?
Répondre
yg_be 3368Messages postés lundi 9 juin 2008Date d'inscription ContributeurStatut 22 septembre 2017 Dernière intervention - 2 sept. 2017 à 15:50
c'est en effet un autre sujet, plutôt dans le forum Excel.
Répondre
Donnez votre avis
Utile
+0
plus moins
Bonjour pe59189,

Je te laisse lire ces 2 messages :

http://www.commentcamarche.net/forum/affich-34835166-controle-de-la-validite-du-mot-de-passe-sous-vba-ms-access#4

http://www.commentcamarche.net/forum/affich-34835166-controle-de-la-validite-du-mot-de-passe-sous-vba-ms-access#5

Tu peux aussi séparer le dernier test en 2 :

- au moins une lettre majuscule accentuée
- au moins une lettre minuscule accentuée

Si tu veux plus d'aide, merci d'indiquer la liste complète des
caractères spéciaux que tu utilises ; idem pour les lettres
accentuées.

N'oublie pas de me donner ton avis.

Cordialement
 
pe59189 5Messages postés samedi 26 août 2017Date d'inscription 4 septembre 2017 Dernière intervention - 4 sept. 2017 à 17:17
Bonjour,

Grand merci pour ton aide.
Les 2 codes proposés règlent mon problème.

Cordialement
Répondre
Donnez votre avis

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.

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

Vous n'êtes pas encore membre ?

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