
Salut à tous

Je vais vous montrer aujourd'hui une petite astuce pour pouvoir crypter votre mot de passe.
Ne quittez pas la page tout de suite, il ne s'agit pas d'un tutoriel basique sur du sha1 ou du md5 !
Ici, le but va être de crypter le mot de passe sur une page de connexion à la bdd.
Par exemple, dans mon cas, voici le contenu de ma page bdd.php

Bon, vous pouvez ici observer deux choses:
On peut voir dans un premier temps que j'inclus un fichier cryptage.php.
Puis dans un deuxième temps, on peut observer que le mot de passe se sert de Cryptage().
Pourquoi faire tout ce charabia pour des informations que personne n'ira consulté ?
Et bien il peut vous arriver d'avoir à modifier/rajouter du contenu sur cette page, non ?
Ou alors il peut arriver de devoir travailler dessus dans un lieu publique (cyber café, cdi, etc).
Avec cette petite sécurité en plus, personne n'ira retenir votre mot de passe, il est invisible !
Et pourquoi ne pas simplement stocker la variable mot de passe dans une autre page ?
Car si la personne ouvre l'autre page, il lui faudra moins d'une seconde pour récupérer votre mot de passe !
Bon, je vous l'accorde, cette méthode n'est pas la plus nécessaire du monde, mais elle m'a bien dépanné.
Je vous la partage donc aujourd'hui même si elle vous servira très peu !

La fonction Cryptage()
Cette fonction a été proposée dans un tutoriel sur le célèbre OpenClassrooms.
L'auteur de ce tutoriel est The maaaaan, vous irez donc le remercier personellement
Vous allez devoir créer un fichier où stocker le script de cryptage.
Voici le code dont vous aurez besoin dans ce fichier que j'appelle cryptage.php:
Code:
<?php
// Script par The maaaaan du SDZ
$Clef = "VOTRE CLEF";
$MDP = "VOTRE MDP";
function Cryptage($MDP, $Clef) {
$LClef = strlen($Clef);
$LMDP = strlen($MDP);
if ($LClef < $LMDP) {
$Clef = str_pad($Clef, $LMDP, $Clef, STR_PAD_RIGHT);
} elseif ($LClef > $LMDP) {
$diff = $LClef - $LMDP;
$_Clef = sub str($Clef, 0, -$diff);
}
return $MDP ^ $Clef;
}
echo $Crypt;
?>

ATTENTION: Vous devez retirer l'espace entre sub et str dans sub str($Clef, 0, -$diff);
Je ne peux pas le faire à cause d'un bug sur le forum mais vous DEVEZ le faire!
Ce code fonctionne sur le principe de la méthode Vernam.
Pour en savoir plus sur cette méthode Vernam, vous pouvez en savoir plus ici:
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.

Mode de fonctionnement
Voici un cas de fonctionnement du code:
Code:
$MDP = "Site du Zero";
$Clef = "Mateo";
$Crypt = Cryptage($MDP, $Clef);
$Decrypt = Cryptage($Crypt, $Clef);
$Crypt sert à crypter Site du Zero avec la clef Mateo
Site du Zero crypté, par exemple, renvoie cette valeur:

$Decrypt contient le mot de passe précédent décrypté (Site du Zero).
Vous devez donc définir une clef et un mot de passe pour pouvoir utiliser cette méthode.
Le mot de passe est celui que vous insérerez dans votre base de donnée.
La clef, vous devez la définir. Cela peut-être tout ce que vous voulez.
Exemple de clefs: ff8oaai8U3 ; kangourou ; twuxytupu, etc

Mise en place
Voici le contenu de votre fichier de connexion que j'appelle bdd.php:
Code:
include('cryptage.php');
$host = "sql31.free-h.org";
$database = "pauldb";
$user = "paulsinnah";
$password = Cryptage($Crypt, $clef);
try {
$bdd = new PDO('mysql:host='.$host.';dbname='.$database.';charset=utf8', ''.$user.'', ''.$password.'');
}
catch (Exception $e) {
die('Erreur : ' . $e->getMessage());
}
Il vous suffit de ce simple code pour faire fonctionner le script !
Pour une sécurité supplémentaire, je vous conseille une petite astuce:
Cryptez votre mot de passe, récupérez la valeur avec un echo, et copiez/collez la version cryptée directement.
Quoi ? Vous n'avez rien compris ?
Bon, voici un code qui va vous permettre de faire ça

Code:
<?php
$Clef = "VOTRE CLEF";
$MDP = "VOTRE MDP";
function Cryptage($MDP, $Clef) {
$LClef = strlen($Clef);
$LMDP = strlen($MDP);
if ($LClef < $LMDP) {
$Clef = str_pad($Clef, $LMDP, $Clef, STR_PAD_RIGHT);
} elseif ($LClef > $LMDP) {
$diff = $LClef - $LMDP;
$_Clef = sub str($Clef, 0, -$diff);
}
return $MDP ^ $Clef;
}
echo $Crypt;
?>
ATTENTION: Vous devez retirer l'espace entre sub et str dans sub str($Clef, 0, -$diff);
Je ne peux pas le faire à cause d'un bug sur le forum mais vous DEVEZ le faire!
Lancez la page, faites un copier/coller du contenu.
Recopiez votre mot de passe dans ce code à la place de MOT DE PASSE dans le code:
Voilà ! Ce petit tutoriel touche à sa fin
Si vous avez des problèmes/questions, n'hésitez pas à poster un commentaire
À bientôt
Recopiez votre mot de passe dans ce code à la place de MOT DE PASSE dans le code:
Code:
<?php
include('cryptage.php');
$host = "sql31.free-h.org";
$database = "pauldb";
$user = "paulsinnah";
$password = Cryptage('MOT DE PASSE', $clef);
try {
$bdd = new PDO('mysql:host='.$host.';dbname='.$database.';charset=utf8', ''.$user.'', ''.$password.'');
}
catch (Exception $e) {
die('Erreur : ' . $e->getMessage());
}
?>

Voilà ! Ce petit tutoriel touche à sa fin
Si vous avez des problèmes/questions, n'hésitez pas à poster un commentaire
À bientôt
