[PHP] Mot de passe sécurisé

Résolu
-CCM- Messages postés 927 Date d'inscription   Statut Membre Dernière intervention   -  
-CCM- Messages postés 927 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Le titre n'est pas claire, je sais ..

En faite j'ai crée un formulaire PHP pour que les membres de mon site puissent modifier leur mot de passe...
Le souci c'est qu'ils sont aujourd'hui libre pour la création de leur nouveau mot de passe et moi je veux (pour leur sécurité) un minimum de caractères et une politique de sécurité tel que le mot de passe doit contenir:

♠ 8 caractères minimum
♠ dans ces 8 caractères 1 chiffre et un caractère spécial au minimum

Comment procéder pour faire en sorte que ces conditions soient respecté en php ?

je pense qu'il y auras une utilisation de compteur ou pointeur ou équivalent ... non ?
A voir également:

7 réponses

Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
Le plus simple les REGEX vas voir le siteduzero.com
0
-CCM- Messages postés 927 Date d'inscription   Statut Membre Dernière intervention   84
 
Salut alain, merci je vais y jetter oeil, sa ne me dit rien ...
0
-CCM- Messages postés 927 Date d'inscription   Statut Membre Dernière intervention   84
 
Salut, maintenant passons aux chose sérieuses... :D
avec un cas concret (j'ai modifier quelques valeurs )


► 8 caractères minimum :___________if (preg_match("#[???]{8,} #", $password))

► dans ces 8 caractères 3 chiffre :____if (preg_match("#[0-9]{3,}#", $password))

► un caractère spécial au minimum :___if (preg_match("#[À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö Ø Œ Š þ Ù Ú Û Ü Ý Ÿ à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ø œ š Þ ù ú û ü ý ÿ]{1,}#", $password))



Pourriez vous m'aidez s'il vous plait?

Comment dire "n'importe quelle caractère" -> pour le premier regex?
Et comment dire "caractère speciaux" pour le dernier regex ? il m'en manque plein !!

Merci
0
-CCM- Messages postés 927 Date d'inscription   Statut Membre Dernière intervention   84
 
en faite aucun de mes regex n'est fait ...


► if(preg_match("#[0-9]{3,}#",$variable))

Si ma $variable = to123toto ► Sa me retourne vrais .
Si ma $variable = to1to2to3 ► Sa me retourne faux !

j'ai pourtant trois chiffres :s ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
-CCM- Messages postés 927 Date d'inscription   Statut Membre Dernière intervention   84
 
C'est presque bon ... et dire que je n'ai jamais fait de php !! sa va sa reste comprehensible :)

condition 1:
if(preg_match("#\d{1}.*\d{1}.*\d{1}#",$variable))

condition 2:
if(strlen($variable)>=8) // tout simplement


condition 3:

►un caractère spécial au minimum ..... je sèche .. :(
0
-CCM- Messages postés 927 Date d'inscription   Statut Membre Dernière intervention   84
 
je me suis fait ma propre expression qui marche plutôt bien :



[\é|\â|\ä|\à|\å|\ç|\ê|\ë|\è|\ï|\î|\æ|\Æ|\ô|\ö|\ò|\û|\ù|\ÿ|\Ö|\Ü|\ø|\£|\ƒ|\í|\ó|\ú|\ñ|\Ñ|\ª|\º|\¿|\®|\¬|\¼|\¡|\«|\»|\Á|\Â|\À|\©|\¢|\¥|\ã|\Ã|\¤|\ð|\Ð|\Ê|\Ë|\È|\Í|\Î|\Ï-¦|\Ì|\Ó|\ß|\Ô|\Ò|\õ|\Õ|\µ|\þ|\Þ|\Ú|\Û|\Ù|\ý|\Ý|\¯|\´|\­|\±|\¾|\¶|\§|\÷|\¸|\°|\¨|\·|\¹|\³|\²|\ÿ|\!|\#|\$|\%|\&|\’|\(|\)|\*|\+|\,|\-|\.|\/|\:|\;|\<|\=|\>|\?|\@|\[|\\|\]|\^|\_|\`|\{|\|\|\}|\~]{1,}

http://www.annuaire-info.com/outil-referencement/expression-reguliere/

mais dans mon code source elle me retourne toujours faux !! le souci vien de mon cod je suppose, mais impossible de voir exactement d'ou sa viendrais !


if (preg_match("#[\é|\â|\ä|\à|\å|\ç|\ê|\ë|\è|\ï|\î|\æ|\Æ|\ô|\ö|\ò|\û|\ù|\ÿ|\Ö|\Ü|\ø|\£|\ƒ|\í|\ó|\ú|\ñ|\Ñ|\ª|\º|\¿|\®|\¬|\¼|\¡|\«|\»|\Á|\Â|\À|\©|\¢|\¥|\ã|\Ã|\¤|\ð|\Ð|\Ê|\Ë|\È|\Í|\Î|\Ï-¦|\Ì|\Ó|\ß|\Ô|\Ò|\õ|\Õ|\µ|\þ|\Þ|\Ú|\Û|\Ù|\ý|\Ý|\¯|\´|\­|\±|\¾|\¶|\§|\÷|\¸|\°|\¨|\·|\¹|\³|\²|\ÿ|\!|\#|\$|\%|\&|\’|\(|\)|\*|\+|\,|\-|\.|\/|\:|\;|\<|\=|\>|\?|\@|\[|\\|\]|\^|\_|\`|\{|\|\|\}|\~]{1,}#",$variable'])) 
						{echo"vrais";}
else
{echo"faux";}	


avec pour $variable = azertyuiop!
0
-CCM- Messages postés 927 Date d'inscription   Statut Membre Dernière intervention   84
 
Réponse :

ligne 3 ► les 5,6 et septiemes caractères ne sont pas backslashé et n'ont pas l'operateur "ou" ("|") d'ou l'erreur en php mais le testeur a été conçu de maniere a ne pas voir ces erreures :s .

Merci pour ton lien alain et merci a ..... heuuu , a moi .

:)
0