IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 MySQL Discussion :

PB de connexion formulaire avec PDO


Sujet :

MySQL

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Etudiante
    Inscrit en
    Octobre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Octobre 2019
    Messages : 5
    Points : 1
    Points
    1
    Par défaut PB de connexion formulaire avec PDO
    Bonjour, je débute et je souhaite réaliser un site web avec une inscription et connexion.
    Ma partie inscription marche parfaitement, j'ai bien mon nouveau utilisateur qui s'affiche dans ma base de donnée. Cependant après déconnexion lorsque quand je tente de me connecter avec l'identifiant et le mot de passe cela ne marche pas...
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    if (!isset($_POST['username'])) //On est dans la page de formulaire
    		{
    			include('login.php'); 
    		}
     
     
    		else
    		{
    		    $message='';
    		    if (empty($_POST['username']) || empty($_POST['password'])) 
    		    {
    		        $message = '<p>une erreur s est produite pendant votre identification.
    			Vous devez remplir tous les champs</p>
    			<p>Cliquez <a href="./login.php">ici</a> pour revenir</p>';
    		    }
    		    else 
    		    {
    		        $query=$db->prepare('SELECT username, password
    		        FROM user_information WHERE username = :username');
     
    		        //$query->bindValue(':password',$_POST['password'], PDO::PARAM_STR);
    		        $query->bindValue(':username',$_POST['username'], PDO::PARAM_STR);
     
    		        $query->execute();
    		        $data=$query->fetch();
     
    				if ($data['password'] == md5($_POST['password'])) // Acces OK !
    				{
    			    	$_SESSION['username'] = $data['username'];
     
    				    $_SESSION['id'] = $data['id'];
    				    $message = '<p>Bienvenue '.$data['username'].',vous êtes maintenant connecté!</p>
    						<p>Cliquez <a href="../accueil.php">ici</a> pour revenir à la page d accueil</p>';  
    				}
    				else 
    				{
    				    $message = '<p>Une erreur sest produite pendant votre identification.<br />
    				     Le mot de passe ou le pseudo entré nest pas correcte.</p>
    				     <p>Cliquez <a href="./login.php">ici</a> 
    				    pour revenir à la page précédente
    				    <br />
    				    <br />Cliquez <a href="../index.php">ici</a> 
    				    pour revenir à la page d accueil</p>';
    				}
    		    	$query->CloseCursor();
    		    }
    		    echo $message.'</div></body></html>';
    		}
    		?>

    Si quelqu'un voit de où pourrait venir l'erreur, ou pourrait me donner une piste.

    Merci d'avance,
    bonne journée !

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 786
    Points
    30 786
    Par défaut
    Citation Envoyé par julnk Voir le message
    lorsque quand je tente de me connecter avec l'identifiant et le mot de passe cela ne marche pas...
    C'est un peu court comme description du problème...
    Tu reçois un message d'erreur ? Lequel ?
    As-tu essayé d'identifier à quel niveau de ton programme tu perds des informations ?
    As-tu affiché les requêtes exécutées pour t'assurer qu'elles sont bien construites ?
    Les as-tu testées directement sur le SGBD ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Etudiante
    Inscrit en
    Octobre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Octobre 2019
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Non je ne reçois aucun message d'erreur ! Le seul message que je reçois c'est celui du else
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    else // Acces pas OK !
    				{
    				    $message = '<p>Une erreur sest produite pendant votre identification.<br />
    				     Le mot de passe ou le pseudo entré nest pas correcte.</p>
    				     <p>Cliquez <a href="./login.php">ici</a> 
    				    pour revenir à la page précédente
    				    <br />
    				    <br />Cliquez <a href="../index.php">ici</a> 
    				    pour revenir à la page d accueil</p>';
    				}
    		    	$query->CloseCursor();

    lorsque l'accès n'est pas autorisé alors que mon identifiant et mdp correspondent à ceux dispo dans ma base de donnée..
    J'ai essayé en plaçant
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    error_reporting(E_ALL);
    		ini_set('display_errors', TRUE);
    		ini_set('display_startup_errors', TRUE);

    en début de code pour voir mais je n' ai rien qui s'affiche de plus...
    Comment je peux les tester directement sur le SGBD ?

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 054
    Points
    19 054
    Par défaut
    Salut julnk.

    Il est fort probable que vous avez oublié de valider vos lignes lors de leur insertion dans la table.
    Pour résoudre ce problème, vous devez apprendre ce que c'est le mode transactionnel.
    --> https://dev.mysql.com/doc/refman/8.0/en/commit.html

    De ce fait, sans validation, les lignes sont présentes dans le journal mais pas dans les tables.
    Et dès que vous terminez votre connexion, elles disparaissent ou si vous préférez, elles sont perdues.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #5
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Citation Envoyé par julnk Voir le message
    Le seul message que je reçois c'est celui du else

    c'est donc que le test
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $data['password'] == md5($_POST['password'])
    n'est pas vrai...

    Affichez les deux valeurs pour voir ce qu'elles contiennent, ça devrait donner un bon début d'explication...

  6. #6
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 054
    Points
    19 054
    Par défaut
    Salut à tous.

    Citation Envoyé par julnk
    Ma partie inscription marche parfaitement, j'ai bien mon nouveau utilisateur qui s'affiche dans ma base de donnée. Cependant après déconnexion lorsque quand je tente de me connecter avec l'identifiant et le mot de passe cela ne marche pas...
    Justement, vous vérifiez vos données dans votre connexion. Puis vous vous déconnectez, mais avez-vous encore vos données présentes ?

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($data['password'] == md5($_POST['password'])) // Acces OK !
    C'est en effet une piste de recherche.
    Dans la table, comment a été stocké votre mot de passe ?
    Est-ce que vous avez utilisez le fonction md5() pour chiffrer votre mot de passe avant de le stocker ?

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  7. #7
    Nouveau Candidat au Club
    Femme Profil pro
    Etudiante
    Inscrit en
    Octobre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Octobre 2019
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Merci à tous pour vos réponse !

    Effectivement lorsque je récupère mon mot de passe de mon formulaire d'inscription de l'insère dans une variable avec md5 dans une nouvelle variable password.

    Du coup oui quand j'affiche mes deux password j'ai des résultats différents. Je comprends mieux pourquoi ça ne marche pas.

    Il faudrait donc pour solutionner mon pb, que j'encrypte avec md5 le password que je récupère du form de connexion pour le comparer à celui de ma bdd ou que je décrypte celui de ma bdd ou cela revient-il au même ?

    Merci beaucoup pour votre aide !

  8. #8
    Nouveau Candidat au Club
    Femme Profil pro
    Etudiante
    Inscrit en
    Octobre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Octobre 2019
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Artemus24 Voir le message
    Salut à tous.


    Justement, vous vérifiez vos données dans votre connexion. Puis vous vous déconnectez, mais avez-vous encore vos données présentes ?


    @+
    Elles sont toujours présentes dans ma base de données oui. Comment puis-je le vérifier ?

  9. #9
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 054
    Points
    19 054
    Par défaut
    Salut julnk.

    Lorsqu'un utilisateur va créer son compte, vous demandez son mot de passe. Celui-ci est en clair.
    Lorsque vous allez le mettre dans la colonne password de votre table MySql, vous allez le chiffrer avec MD5.

    Ensuite, quand ce même utilisateur va se connecter, il va entrer à nouveau son mot de passe. Celui-ci est aussi en clair.
    Vous allez le chiffrer et comparer avec celui de votre table qui est déjà chiffré.

    C'est en principe ainsi que l'on procède pour les mots de passe.
    Il y a une petite chose, md5() est obsolète car on peut casser son cryptage.

    On peut utiliser à la place de md5(), AES_ENCRYPT().
    --> https://dev.mysql.com/doc/refman/8.0...functions.html

    Faites une recherche sur le net pour vous familiariser avec les fonctions de hachage.
    Vous n'êtes pas obligé d'utiliser ceux de MySql. Pourquoi pas ceux de Php ?
    --> https://www.php.net/manual/fr/ref.password.php

    Citation Envoyé par julnk
    Elles sont toujours présentes dans ma base de données oui. Comment puis-je le vérifier ?
    En passant par le compte "root" et en consultant votre table en faisant un select.
    J'ai affirmé que votre table pouvait être vide car fréquemment, les débutants ne maîtrise pas bien ce que représente le mode transactionnel.

    Mais si ce n'est pas le cas alors oui, la comparaison entre le mot de passe saisie et stocké peut être la cause de votre problème.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  10. #10
    Nouveau Candidat au Club
    Femme Profil pro
    Etudiante
    Inscrit en
    Octobre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Etudiante

    Informations forums :
    Inscription : Octobre 2019
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    D'accord je comprends mieux les différentes étapes. Normalement j'ai vérifié et je chiffre bien mon mot de passe avant de le comparer à celui de ma bdd lors de ma connexion du coup ça ça doit être bon. Mais je vais lire tous vos liens afin de changer le md5.

    J'ai effectué une requête SELECT * FROM ma_table WHERE username = 'myUsername'; et j'ai bien la ligne qui correspond à mon username qui m'est renvoyé...

    Merci beaucoup !

  11. #11
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 054
    Points
    19 054
    Par défaut
    Salut julnk.

    Il ne faut pas aller trop vite quand on est débutant !

    1) vous avez bien la présence de la ligne dans votre table. Autrement dit, la ligne est bien enregistrée.
    2) pour l'instant, utilisez encore la fonction md5() pour vos tests.
    3) saisissez un mot de passe pour votre test : "mon mot de passe". Vous remarquerez qu'il n'y a pas d'accents ! Juste des caractères ASCII.
    4) Vérifiez que le password qui est dans votre table correspond bien à celui que vous lisez dans "$data['password']".
    5) peu importe s'il est déjà chiffré ou pas, l'important est d'avoir exactement le même.
    6) celui que vous saisissez au clavier doit être le même, donc "mon mot de passe".
    7) testez le chiffrement de cette chaîne en faisant ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    --------------
    select md5("mon mot de passe")
    --------------
     
    +----------------------------------+
    | md5("mon mot de passe")          |
    +----------------------------------+
    | 28bbd531bd0b2d272233e703b1f38dba |
    +----------------------------------+
     
    Appuyez sur une touche pour continuer...
    8) avez-vous la même chaîne pour le mot de passe stocké et chiffré dans votre table ?
    9) avez-vous la même chaîne lorsque vous récupérez dans votre script le mot de passe en provenance de la table ?
    10) avez-vous la même chaîne lorsque vous chiffrez ce que l'utilisateur a saisie comme mot de passe ?
    11) si c'est pareil, vous recommencez en mettant cette fois-ci des accents.
    12) et vous me communiquez vos résultats.

    Bonne soirée et à demain.
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  12. #12
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 760
    Points : 52 541
    Points
    52 541
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Artemus24 Voir le message
    ...
    7) testez le chiffrement de cette chaîne en faisant ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    --------------
    select md5("mon mot de passe")
    --------------
     
    +----------------------------------+
    | md5("mon mot de passe")          |
    +----------------------------------+
    | 28bbd531bd0b2d272233e703b1f38dba |
    +----------------------------------+
     
    Appuyez sur une touche pour continuer...
    ATTENTION un hachage n'est pas un chiffrement !
    C'est juste une parfaite imbécilité de considérer comme viable un MD5 pour un mot de passe.
    À me lire :
    https://blog.developpez.com/sqlpro/p...dans-les-sgbdr

    A lire :
    https://community.jaspersoft.com/wik...ption-insecure
    https://stackoverflow.com/questions/...ssword-hashing
    https://security.stackexchange.com/q...dered-insecure
    https://www.codeproject.com/Articles...ollisions-in-C
    ...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  13. #13
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 054
    Points
    19 054
    Par défaut
    Salut SQLPRO.

    [quote="SQLPRO"]ATTENTION un hachage n'est pas un chiffrement !
    Le hachage sert à calculer une empreinte numérique servant à identifier la donnée initiale.
    Dans le langage perl, il est utilisé en tant qu'index pour retrouver une chaîne de caractères dans un tableau.

    C'est aussi utilisé en cryptographie.
    A moins de me tromper, la codification d'une chaîne de caractères, en français, se nomme un chiffrement.
    Quand je parle de chiffrement, c'est de la terminologie dont je parle pour codifier les mots de passe.

    Maintenant, tu soulèves un autre problème que la terminologie.
    Est-ce faire un bon usage d'utiliser des fonctions de hachage pour chiffrer des mots de passe ?
    Je réponds NON à cause des éventuelles collisions que cela peut produire. Après, je n'ai pas approfondi la question.
    J'en fait usage au travers des certificats qui sont à notre disposition.

    Citation Envoyé par SQLPRO
    C'est juste une parfaite imbécilité de considérer comme viable un MD5 pour un mot de passe.
    Il faudrait lire le sujet en entier ! J'ai bien précisé que la fonction md5() est obsolète.
    C'est ce que je dis ici avec un lien qui le précise.

    Citation Envoyé par Artemus24
    Il y a une petite chose, md5() est obsolète car on peut casser son cryptage.
    SQLPRO,j'ai surtout l'impression que tu ne fais que survoler les sujets et non les lire en entier.
    Nous sommes là pour répondre aux questions techniques et non à noyer un utilisateur avec des considérations, même si elles sont vrais, et qui n'en tiendra pas compte !

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  14. #14
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 760
    Points : 52 541
    Points
    52 541
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Artemus24 Voir le message
    Salut SQLPRO.
    Le hachage sert à calculer une empreinte numérique...
    Oui
    servant à identifier la donnée initiale.
    Non !
    En effet du fait, des collisions possible il n'est ABSOLUMENT pas un identifiant. Il permet simplement un accès plus rapide qu'une longue information, mais il faudra TOUJOURS réaliser une ultime vérification pour savoir si l'information est identique.
    Dans le langage perl, il est utilisé en tant qu'index pour retrouver une chaîne de caractères dans un tableau.
    Dans la plupart des outils de recherche c'est le cas et notamment dans certains SGBD pour les index en hash (SQL Server, MongoDB...)Wikipedia raconte beaucoup de conneries.... Et les traductions sont généralement approximatives. Le chiffrement n'est pas la cryptographie. Le chiffrement est une méthode de cryptographie qui passe par une numérisation, dont avec un processus de calcul. Il existe beaucoup d'autres méthodes de cryptographie, notamment la stéganographie.... Considérer que chiffrement = cryptographie est donc faux !
    Et ce n'est pas parce que le hachage est utilisé dans certaines processus de chiffrement que c'est du chiffrement. C'est un peu comme si vous me disiez qu'un pneu c'est une voiture !
    Le hachage sert de signature. C'est à dire qu'il permet de retrouver plus facilement, plus rapidement une information, par sa compacité... Mais une signature cela s'imite ! Il faut donc toujours comparer l'information finale brute et non pas se contenter de dire que comme les signatures sont identiques alors l'information initiale l'est aussi !

    C'est hélas ce que beaucoup de développeur font, c'est à dire une double faute :
    1) considérer le hachage comme solution de chiffrement, ce qui est faux
    2) se contenter de ne vérifier que le hachage d'un mot de passe, ce qui est stupide
    Partant de ces deux éléments, il vaut faut stocker les mots de passe directement chiffrés avec un algorithme genre RSA, ce qui n'empêche pas de faciliter la recherche par un hachage !
    Quand je parle de chiffrement, c'est de la terminologie dont je parle pour codifier les mots de passe.
    Et là vous entrez de plain pied dans la phase stupide et imbécile, hélas très répandue, qui consiste à dire que les mots de passent doivent être stockées de manière hachés.... C'est juste une immense connerie, qui aujourd'hui nécessite la modification de certains SGBDR (comme PostGreSQL qui faisait cela de manière stupide) et qui est traqué aujourd'hui par la CNIL au titre du RGPD, car à l'évidence peu fiable (on sait casser des hachage en quelques minutes....

    A +

    PS : je ne survole pas, mais je n'ai pas le temps de tout expliquer. Je doit m'occuper de mes clients avant tout !
    Et pour information, les index en hash (et d'autres techniques d'indexation, BTree, Bitmap, QuadTree...) sont expliqués dans mon livre sur SQL
    Nom : SQL.jpg
Affichages : 627
Taille : 47,4 Ko
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  15. #15
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 054
    Points
    19 054
    Par défaut
    Salut SQLPRO.

    Citation Envoyé par SQLPRO
    Citation Envoyé par Artemus24
    servant à identifier la donnée initiale.
    Non !
    Et pourtant, c'est ainsi qu'est définie le hachage dans wikipedia.
    --> https://fr.wikipedia.org/wiki/Fonction_de_hachage

    Citation Envoyé par SQLPRO
    Le chiffrement n'est pas la cryptographie.
    Le chiffrement est juste un aspect de la cryptographie. Ils ne sont pas synonymes.

    Or dans l'aspect qui nous intéresse, le hachage, le résultat est une chaîne alphanumérique.
    Je pense sans trop me tromper qu'il s'agit bien d'un chiffrement.

    Citation Envoyé par SQLPRO
    Le hachage sert de signature.
    Dans le cas de la cryptographie :
    --> https://fr.wikipedia.org/wiki/Foncti...ryptographique

    Citation Envoyé par SQLPRO
    Et là vous entrez de plain pied dans la phase stupide et imbécile, hélas très répandue, qui consiste à dire que les mots de passent doivent être stockées de manière hachés....
    Ce n'est pas mon cas car je n'utilise pas les fonctions de hachage pour chiffrer les mots de passe.
    Je connais le problème des collisions mais aussi qu'ils ne sont pas assez fiables. On peut les cracker !

    Citation Envoyé par SQLPRO
    C'est juste une immense connerie ...
    Bien sûr que c'est une connerie car un imbécile dit quelque chose et tous ceux qui suivent considère que c'est parole d'évangile, et ne vérifie jamais quoi que ce soit. Tout le problème est là !

    Citation Envoyé par SQLPRO
    PS : je ne survole pas, mais je n'ai pas le temps de tout expliquer.
    Parfois, j'ai cette impression que vous réagissez à un propos en dehors du contexte du sujet.
    Il n'est pas nécessaire de toujours tout explique, bien que je vous trouve intéressant.

    Citation Envoyé par SQLPRO
    Je doit m'occuper de mes clients avant tout !
    Ce que je comprends parfaitement. A l'inverse de vous, j'ai du temps à perdre.
    Il faut prendre de la distance et ne pas être conditionné comme le chien de Pavlov, à répondre à des propos (ou des stimulis) qui vous dérange.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  16. #16
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 760
    Points : 52 541
    Points
    52 541
    Billets dans le blog
    5
    Par défaut
    Ne vous référez pas à Wikipédia.... Encore une fois c'est farci de connerie !
    Extrait du Larrousse :
    chiffrement, Définitions
    Opération qui consiste à transformer un message à transmettre, dit « message clair », en un autre message, inintelligible pour un tiers, dit « message chiffré », en vue d'assurer le secret de sa transmission.
    Comment celui auquel on transmet l'information chiffrée peut t-il déchiffrer s'il s'agit d'un hachage ? Cela est impossible !

    Donc hachage n'est pas chiffrement....

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  17. #17
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 054
    Points
    19 054
    Par défaut
    Salut SQLPRO.

    Désolé pour cette subtilité.
    Je ne peux pas parler de chiffrement puisqu'il n'y a pas de fonction inverse dans le cas du hachage.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

Discussions similaires

  1. Impossible d'établir une connexion mysql avec PDO
    Par Tamzoro dans le forum Langage
    Réponses: 3
    Dernier message: 14/10/2015, 23h36
  2. [PDO] Connexion à Mysql avec PDO fonctionne pas, Mysqli oui
    Par Tonii dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/07/2015, 15h17
  3. Connexion mysql avec PDO
    Par Hatsrog dans le forum Langage
    Réponses: 2
    Dernier message: 14/04/2015, 22h36
  4. [PDO] Conseils sur Connexion persistante avec PDO ?
    Par QAYS dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 23/08/2013, 22h43
  5. [PDO] [PHP 5.3] Problème de connexion persistante avec PDO
    Par Benjamin Delespierre dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 15/03/2012, 14h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo