Fonctions MySQL
Les fonctions MySQL
Fonctions de bases
En SQL, il est conseillé de saisir le nom des fonctions en majuscule. On utilise ici la fonction MySQL DATABASE() qui retourne le nom de la base courante.
Quelle base de données est actuellement sélectionnée?mysql> SELECT DATABASE();
Fonctions d'utilisateurs
Quelle est l'utilisateur courant?mysql> SELECT USER();
mysql> SELECT SUBSTRING_INDEX(USER(),"@",1);
Fonctions d'identifiants
Quelle est le dernier numéro d'ID généré automatiquement?mysql> SELECT LAST_INSERT_ID();
mysql> SELECT CONNECTION_ID();
Fonctions de cryptage
⚠ Attention, chiffrage non réversible. Il n'existe pas de fonction de déchiffrement, car cette fonctions utilise un algorithme à un seul sens. Sinon, vous pouvez utiliser les fonctions ENCODE() et DECODE().
Fonction PASSWORD
mysql> SELECT PASSWORD('secret');
Fonction MD5
mysql> INSERT INTO matable(mdp_clients) VALUES(MD5("'.$mdp.'"));
Fonction SHA1
mysql> INSERT INTO matable(mdp_clients) VALUES(SHA1("'.$mdp.'"));
Pourquoi les fonctions traditionnelles de hachage comme MD5 et SHA1 sont-elles inappropriées aux mots de passe ?
Les algorithmes de hachage comme MD5, SHA1 et SHA256 sont destinés à être rapides et efficaces. Avec les équipements informatiques modernes, il est devenu facile d'attaquer par force brute la sortie de ces algorithmes pour retrouver la chaîne originale.
C'est la raison pour laquelle de nombreux experts en sécurité considèrent ces algorithmes comme faibles et les déconseillent fortement pour hacher un mot de passe utilisateur.
Alors, comment hacher mes mots de passe ?
On utilise la fonction PHP crypt(), qui supporte différents algorithmes de hachage depuis PHP 5.3 comme l'algorithme Blowfish ou, encore mieux, la fonction password_hash() qui créée un algorithme aléatoire.