Un bon mot de passe doit garantir l'accès aux données de votre site, qu'elles soient stockées dans une base, ou que l'interface de mise à jour soit protégée par une demande d'authentification. Ce mot de passe doit être le plus difficile à deviner pour un attaquant et le plus facile à mémoriser pour vous. Ces deux obligations semblent contradictoires, mais quelques astuces peuvent aider à construire des mots de passe de cette sorte.
Un mot de passe doit respecter certaines règles de complexité pour éviter qu'il ne soit découvert trop facilement. La compléxité d'un mot de passe est définie par sa longueur et par le nombre de valeurs différentes qu'un caractère peut prendre.
Utilisez plusieurs types de caractères :
Exemple : si votre mot de passe comporte 5 caractères :
Une méthode de mémorisation des mots de passe consiste à remplacer un caractère minuscule par un caractère spécial, le même caractère en majuscule ou un nombre.
Quelques substitutions classiques
Avec cette méthode,
François devient Fr@nç01$,
motdepasse
devient M07DéP@553
et secret devient $3CrE7
Ecrivez la fonction remplacerCaracteres qui implémente la mémorisation par remplacement de caractères. Cette fonction accepte comme paramètre la chaîne de caractères à transformer. Le traitement de substitution est constitué de 3 étapes.
1 - Certains caractères accentuables sont accentués de la façon suivante :
2 - Les caractères substituables sont remplacés de la façon suivante :
On remplace une fois par un caractère spécial, une fois par un chiffre.
3 - On remplace les minuscules restantes (une sur deux) par la majuscule correspondante.
La fonction remplacerCaracteres renvoie la chaîne avec les caractères transformés.
Exemples
|
Chaîne |
Etape 1 |
Etape 2 |
Etape 3 |
|
François |
frànçois |
frànç.1$ |
FràNç.1$ |
|
secret |
séçrét |
$éçré7 |
$éçRé7 |
|
motdepasse |
motdépàssé |
m.7dépà$5é |
M.7déPà$5é |
Remarque : si la chaîne contient des espaces, ils doivent être supprimés.
La méthode de mémorisation de mots de passe par mélange consiste à prendre 2 ou plusieurs mots et à les mélanger suivant un certain ordre. Par exemple on prend le 1er caractère du premier mot, le 2eme caractère du second mot, le 3eme caractère du premier mot, le 4eme caractère du second mot, etc. A la place du deuxième mot, on peut avoir aussi une suite de nombre (par exemple artihmétique, géométrique, nombre premiers, PI, suite de Fibonacci, etc).
Exemples
|
Premier mot |
Deuxième mot |
Résultat |
|
François |
Piat |
FPriaantçois |
|
Piat |
doubler les nombres |
P1i2a4t8 |
|
secret |
login |
sleocgrient |
Ecrivez la fonction melangerCaracteres qui implémente la mémorisation par mélange de mots ou de modèles. Cette fonction accepte 2 paramètres :
Les espaces éventuels dans les chaînes doivent être enlevés.
Le 1er paramètre est la 1ere chaîne à transformer.
Si le deuxième paramètre est une chaîne de caractères (chaîne à mélanger), le traitement consiste à concaténer la 1ere lettre de la chaîne à transformer, puis la 1ere lettre de la chaîne à mélanger, puis la 2eme lettre de la chaîne à transformer, puis la 2eme lettre de la chaîne à mélanger, puis la 3eme lettre de la chaîne à transformer, puis la 3eme lettre de la chaîne à mélanger, etc..
Si le deuxième paramètre est un nombre positif, le traitement consiste à prendre le 1er caractère de la chaîne à tranformer, le nombre, le 2eme caractère de la chaîne, le nombre + 1, le 3eme caractère de la chaîne, le nombre + 2, etc.
Si le deuxième paramètre est un nombre négatif, les caractères de la chaîne à transformer sont répétés autant de > fois que le nombre, en commençant par la fin de cette chaîne (la chaîne est inversée).
La fonction melangerCaracteres renvoie la chaîne avec les caractères transformés.
Exemples
|
Chaîne à transformer |
Chaîne à mélanger |
Résultat |
|
François |
Piat |
FPriaantçois |
|
login |
secret |
lsoegcirnet |
|
motde |
passe |
mpoatsdsee |
|
Piat |
3 |
P3i4a5t6 |
|
login |
-2 |
nniiggooll |
La méthode de mémorisation de mot de passe à partir d'une phrase consiste à prendre une phrase (ou une partie de phrase) et à ne garder que certains caractères (par exemple le premier caractère de chaque mot, ou le 2éme, ou le dernier, etc).
Exemples
|
Phrase |
Méthode |
Résultat |
|
12 avenue de mon adresse |
1er caractère de chaque mot |
1adma |
|
que la force soit avec toi |
2eme caractère de chaque mot |
uaoovo |
|
mot de passe secret |
derniere caractère et premier caractère de chaque mot |
tsepedtm |
Ecrivez la fonction melangerPhrase qui implémente la mémorisation à partir d'une phrase. Cette fonction accepte 2 paramètres :
Le traitement des mots de la phrase devra être fait avec une autre méthode que la fonction PHP explode() générant un tableau.
Exemples
|
Phrase |
Type |
Résultat |
|
que la force soit avec toi |
1 |
qlfsat |
|
mot de passe secret |
2 |
tmedepts |
|
1 rue des Quatre Chemins |
3 |
1usti |
La fonction melangerPhrase renvoie la chaîne avec les caractères transformés.