Enregistrer des mots de pass securisés
Résolu
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
comment enregistrer des mots de pass dans sa base de données de façon à être plus sécurisé dans le php/mysql,
supposant que le mot de pass est
$password=zrater;
est ce qu'on peut inserer le mot de pass ici et ce sera suffisant,
ou bien ajouter un traitement avant ?
merci d'avance
comment enregistrer des mots de pass dans sa base de données de façon à être plus sécurisé dans le php/mysql,
supposant que le mot de pass est
$password=zrater;
est ce qu'on peut inserer le mot de pass ici et ce sera suffisant,
ou bien ajouter un traitement avant ?
merci d'avance
A voir également:
- Enregistrer des mots de pass securisés
- Audacity enregistrer son pc - Guide
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
- Mot de passe administrateur - Guide
- Mots de passe enregistrés - Guide
3 réponses
Tu peux utiliser la fonction md5() de PHP.
https://www.php.net/manual/en/function.md5.php
« La recherche commence là où s'arrête la connaissance. »
https://www.php.net/manual/en/function.md5.php
« La recherche commence là où s'arrête la connaissance. »
Salut,
Tu peux aussi utiliser un algorithme de hashage (md5, sha1, etc).
Ça permet d'évaluer la somme d'une chaine.
Depuis cette somme, on ne peut pas récupérer la chaine d'origine.
C'est comme un cryptage à sens unique.
Lorsque l'utilisateur indiquera son mot de passe pour se connecter, il faudra hasher le mot de passe (dans $_POST) afin de le comparer avec le hash en base de données.
Le problème est que certaines techniques existent pour retrouver la chaine d'origine à partir du hash si le mot de passe n'est pas assez complexe.
Ça se fait grâce à une grosse base de données contenant des paires
(chaine <-> hash)
La solution est donc d'utiliser un jeton (une phrase par exemple) secrète.
Par exemple :
Mais si tu te fais pirater à la fois la base de données et les sources, cette protection devient inutile car il aura la phrase secrète. Mais il devra encore trouver le mot de passe.
Par contre, en cas d'erreur PHP/SQL, les mots de passe de tes membres ne s'afficheront pas en clair sur ton site.
Tu peux aussi utiliser un algorithme de hashage (md5, sha1, etc).
Ça permet d'évaluer la somme d'une chaine.
Depuis cette somme, on ne peut pas récupérer la chaine d'origine.
C'est comme un cryptage à sens unique.
Lorsque l'utilisateur indiquera son mot de passe pour se connecter, il faudra hasher le mot de passe (dans $_POST) afin de le comparer avec le hash en base de données.
Le problème est que certaines techniques existent pour retrouver la chaine d'origine à partir du hash si le mot de passe n'est pas assez complexe.
Ça se fait grâce à une grosse base de données contenant des paires
(chaine <-> hash)
La solution est donc d'utiliser un jeton (une phrase par exemple) secrète.
Par exemple :
<?php $phraseSecrete = '*************'; $motDePasse = 'agent007'; $hash = md5($phraseSecrete.$motDePasse); ?>
Mais si tu te fais pirater à la fois la base de données et les sources, cette protection devient inutile car il aura la phrase secrète. Mais il devra encore trouver le mot de passe.
Par contre, en cas d'erreur PHP/SQL, les mots de passe de tes membres ne s'afficheront pas en clair sur ton site.
Tu peux la mettre dans ton fichier de configuration, si tu en as un.
Si tu n'en as pas, il faut la mettre dans chaque fichier où tu souhaites l'utiliser.
Quand je dis "phrase secrète", ce n'est pas obligatoirement une phrase "Hey, salut, comment vas-tu ?" : tu peux utiliser quelque-chose qui ressemble à rien.
Pour générer ta phrase secrète, tu peux utiliser ceci :
Si tu n'en as pas, il faut la mettre dans chaque fichier où tu souhaites l'utiliser.
Quand je dis "phrase secrète", ce n'est pas obligatoirement une phrase "Hey, salut, comment vas-tu ?" : tu peux utiliser quelque-chose qui ressemble à rien.
Pour générer ta phrase secrète, tu peux utiliser ceci :
<?php echo uniqid(md5(time()));PS: Tu ne dois pas regénérer cette phrase à chaque fois, je te donne ce code pour que tu génères ton jeton. Après, tu n'en as plus besoin et il faut utiliser ce jeton à la place des « * » de mon code précédent.