J'ai un espace membre, au début lors de l'inscription de hacher le mot de passe avec md5. Puisque je doit faire un système pour récupérer les mot de passe oublier, je vais juste le crypté.
J'ai trouver ce crypte mais j'arrive pas a l'insérer dans ma page pour crypter mon mot de passe dans ma BDD.
Script de cryptage :
//Début de ma fonction crypter
//Entrée: message à crypter, mot de passe. (les deux sont de type chaine)
//Je considère les chaines comme étant des tableaux de caractères
//Sortie: message encrypté. (chaine)
//Ecrit par Tadpole, Décembre 1998, cours de Philo.
//Traduit du Pascal/Delphi
function crypter($mes,$password) {
$res=' ';
$j=0;
$tmp=0;
//initialisations des variables.
//J'ai pour habitude de toujours déclarer les types de mes variables...
$lgmot = strlen($mes);
//on récup la longueur du message
//puis on boucle en analysant chaque caractère tour à tour jusqu'au bout du message.
for ($i = 0; $i < $lgmot; $i++) {
$tmp = ord($mes[$i]) + ord($password[$j]);
//La ligne précédente est le coeur du programme:
//on ajoute la valeur ascii du caractère en position i
//à la valeur ascii du caractère en position j. Simple mais efficace.
//si le resultat est supérieur a 255, pas de panique, on enlève 256 et on retombe sur nos pieds ;-)
if ($tmp > 255) {
$tmp = $tmp - 256;
}
$res[$i]=chr($tmp);
if ($j == (strlen($password)-1)) {
$j= 0;
} else {
$j=(($j % (strlen($password))) + 1);
//Ahh... le modulo... J'adore :-)
}
}
$res = base64_encode($res);
//base64 est conseille pour le traitement des chaines longues
return $res;
//On retourne le messsage crypté.
}
Ma page d'origine :
// Connexion à la base de données
// Valeurs à modifier selon vos paramètres configuration
mysql_connect("", "", "");
mysql_select_db("");
// Vérification de l'unicité du nom d'utilisateur et de l'adresse e-mail
$result = mysql_query("
SELECT Nom_Entreprise
, Adresse_Email
FROM Comptes_Utilisateurs
WHERE Nom_Entreprise = '" . $_POST["nom_entreprise"] . "'
OR Adresse_Email = '" . $_POST["email_contact_entreprise"] . "'
");
// Si une erreur survient
if(!$result)
{
$messages = "Erreur d'accès à la base de données lors de la vérification d'unicité";
}
else
{
// Si un enregistrement est trouvé
if(mysql_num_rows($result) > 0)
{
while($row = mysql_fetch_array($result))
{
if($_POST["nom_entreprise"] == $row["Nom_Entreprise"])
{
$enregistrement_trouver = "Le nom de l'entreprise " . $_POST["nom_entreprise"];
$enregistrement_trouver .= " est déjà utilisé";
}
elseif($_POST["email_contact_entreprise"] == $row["Adresse_Email"])
{
$enregistrement_trouver = "L'adresse e-mail " . $_POST["email_contact_entreprise"];
$enregistrement_trouver .= " est déjà utilisée";
}
}
}
else
{
// Génération de la clef d'activation
$caracteres = array("a", "b", "c", "d", "e", "f", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
$caracteres_aleatoires = array_rand($caracteres, 8);
$clef_activation = "";
foreach($caracteres_aleatoires as $i)
{
$clef_activation .= $caracteres[$i];
}
// Création du compte utilisateur
$result = mysql_query("
INSERT INTO Comptes_Utilisateurs(
Nom_Entreprise
, Mot_de_Passe
, Adresse_Entreprise
, Code_Postal_Entreprise
, Ville_Entrerpise
, Nom
, Prenom
, Telephone
, Adresse_Email
, Date_Inscription
, Clef_Activation
, roles_id
)
VALUES(
'" . $_POST["nom_entreprise"] . "'
, '" . md5($_POST["mot_de_passe"]) . "'
, '" . $_POST["adresse_entreprise"] . "'
, '" . $_POST["code_postal_entreprise"] . "'
, '" . $_POST["ville_entreprise"] . "'
, '" . $_POST["nom"] . "'
, '" . $_POST["prenom"] . "'
, '" . $_POST["telephone"] . "'
, '" . $_POST["email"] . "'
, '" . time() . "'
, '" . $clef_activation . "'
, '" . 2 . "'
)
");
// Si une erreur survient
if(!$result)
{
$messages = "Erreur d'accès à la base de données lors de la création du compte utilisateur";
}
else
{
// Envoi du mail d'activation
$sujet = "Activation de votre compte utilisateur";
$messages = "Pour valider votre inscription, merci de cliquer sur le lien suivant :\n";
$messages .= "[http://]" . $_SERVER["SERVER_NAME"];
$messages .= "/ulysse/activer-compte-utilisateur.php?id=" . mysql_insert_id();
$messages .= "&clef=" . $clef_activation;
// Si une erreur survient
if(!@mail($_POST["email"], $sujet, $messages))
{
$message_comfirmation = "Une erreur est survenue lors de l'envoi du mail d'activation.<br />\n";
$message_comfirmation .= "Veuillez contacter l'administrateur afin d'activer votre compte.";
}
else
{
// Message de confirmation
$message_comfirmation = "Votre compte utilisateur a correctement été créé.<br />\n";
$message_comfirmation .= "Un email d'activation de compte, vient de vous être envoyé.";
// On masque le formulaire
$masquer_formulaire = true;
}
}
}
}
// Fermeture de la connexion à la base de données
mysql_close();
}
}
}
?>
je n'est pas une question de comment hacker un mot de passe, mais plutôt protection. Faire un système pour que si un membre oublie son mot de passe puisque le récupérer. Avec le md5, c'est impossible de le renvoyer, je veux mettre en place un système que lors de l'inscription, crypter le mot de passe pour le mettre dans ma BDD. Ne pas l'insérer dans ma BDD en clair.
Et normalement il y a pas d'erreur puisque le script marche parfaitement.
Il faudraitque, lors qu' une personne s' inscrit, son mdp va direction ta BDD et installe un logiciel qui génère des clées de cryptages suivant certains crytères et les changent toutes les x secondes.
Après, ta BDD ne sera pas incraquable mais ce sera déja pas mal..
Trouvez des réponses à vos questions sur les langages, les frameworks et les astuces de codage. Échangez avec d'autres développeurs passionnés pour améliorer vos compétences en programmation et rester au fait des dernières tendances du secteur.