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 :

Exercice : mot de passe par remplacement

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

s
est remplacé par S ou 5 ou $
i
est remplacé par I ou 1 ou !
a
est remplacé par A ou à ou @
t
est remplacé par T ou 7
e
est remplacé par E ou 3 ou é
g
est remplacé par G ou 6 ou 9
o
est remplacé par O ou 0
b
est remplacé par B ou 8

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 :

a
par à
e
par é
c
par ç
u
par ù

2 - Les caractères substituables sont remplacés de la façon suivante :

s
par $ ou 5
i
par ! ou 1
t
par + ou 7
g
par ? ou 9
o
par . ou 0

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.

Une solution possible

Exercice : création de mot de passe par remplacement

Exercice : mots de passe par mélange

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

Une solution possible

Exercice : création de mot de passe par mélange

Exercice : mots de passe à partir d'une phrase

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.

Une solution possible

Exercice : création de mot de passe à partir d'une phrase