Bonjour. visiteurs jour : 45       Au président     Beauté santé     Infos loisirs     Ensemble      Jean      Informatique     Einstein     Santé corona

Les joies de l'informatique et de l'internet !





Coucou et merci


  Accueil - Disques - Excel - Informatique - Infos - Internet - Javascript - logiciels  - Programation - Sites RJ - Vidéo - Plan du site -



   

Crypter les mots de passe pour les stocker dans les bases de données

MYSQL dispose de la fonction PASSWORD qui code les mots de passe sur 50 caractères (ça fait beaucoup )

Au moment de la saisie activer la fonction password :

Insertion d'un mot de passe dans uen base MySql avec la fonction PASSWORD

Lors d'une requête d'accès à la table coder le mot de passe envoyé de la mlême façon :

$query = "SELECT * FROM table1 WHERE login='$login' AND pass =PASSWORD('$pass')";


Autre exemple :

Générer un hash d’une chaine  avec un « grain de sel ». :

function hashPass($pass){

    return md5(‘1234567890′ . $pass . ‘1234567890’;

}

Dans les requêtes de création/modification du mot de passe et de vérification des identifiant/mot de passe fournis, on utilise cettefonction :

SELECT * FROM tableTest WHERE login = $login AND pass = hashPass($pass)


Source Webmaster-Freelance.com

En PHP

(PHP 5 >= 5.5.0)
La fonction password_hash() crée une clé de hachage en utilisant un algorithme de hachage fort en une pass. Elle est compatible avec la fonction crypt(). Un mot de passe haché par la fonction crypt() peut être utilisé avec la fonction password_hash(). Il faut stocker le résultat dans au moins

60 caractères et ça devrait augmenter dans les années qui viennent !


<?php

   pw_crypt = password_hash("rasmuslerdorf", PASSWORD_DEFAULT);

  echo pw_crypt -> $2y$10.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a

?>


Le cost et le salt peuvent être gérés en options : 

$options = [ 'cost' => 11, 'salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM), ];

echo password_hash("rasmuslerdorf", PASSWORD_BCRYPT, $options)."n";


Ne jamais définir un salt statique.


Tester le meilleur "cost" sur son serveur : Le "cost" le plus élevé possible sans trop ralentir le serveur.

Un temps de traitement  ≤ à 50 millisecondes peut-être accepter, ce qui est une bonne base pour les systèmes gérants les identifications de façon intéractive


$timeTarget = 0.05; // 50 millisecondes

$cost = 6;

do {

    $cost++;

   $start = microtime(true);

   password_hash("test", PASSWORD_BCRYPT, ["cost" => $cost]);

   $end = microtime(true);

} while (($end - $start) < $timeTarget);

echo "Valeur de 'cost'  raisonnable: " . $cost . "n"; ?>

L'exemple ci-dessus va afficher : Valeur de 'cost'  raisonnable: 10 (environ 8 à 11 selon votre serveur


Source php.net et blog.pascal-martin

 






-
vues  800     En ligne actuellement :   6   Total des clics  1656286