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

Requêtes MySQL Discussion :

Hashage à la volée


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 295
    Par défaut Hashage à la volée
    Bonjour/ bonsoir,

    j'ai une petite base de données dans laquelle j'ai une table compte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE IF NOT EXISTS `cpte` (
      `idRec` int(4) NOT NULL AUTO_INCREMENT,
      `nom` text COLLATE utf8_unicode_ci NOT NULL,
      `prenom` text COLLATE utf8_unicode_ci NOT NULL,
      `id` text COLLATE utf8_unicode_ci NOT NULL,
      `pass` text COLLATE utf8_unicode_ci NOT NULL,
      `section` text COLLATE utf8_unicode_ci NOT NULL,
      PRIMARY KEY (`idRec`)
    ...
    Je voudrais passer en SHA1 la colonne 'pass' pour les 54 enregistrements que la table contient. Je n'ai pas envie de me les faire un par un à la main. Comment puis-je m'y prendre ? Merci,

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Le type TEXT pour la plupart de vos colonnes est probablement inaproprié.

    Y aura t-il des noms, des prénoms, des mots de passe, des sections, supérieurs à 255 caractères ?
    => Utilisez plutôt VARCHAR pour les chaînes de longueur variable ou CHAR pour les longueurs fixes.

    Concernant la colonne id, je suppose qu'elle fait référence à l'identifiant d'une autre table ? Et cet autre identifiant est j'espère de type entier comme pour la table cpte ?

    D'ailleurs, pourquoi une table appelée "cpte" (compte ?) a t-elle un identifiant appelé "idRec" ?

    Pour répondre quand même à votre question, vous avez plusieurs fonctions de hashage à votre disposition avec MySQL, dont SHA1.

    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 295
    Par défaut
    Merci pour les précisions concernant la base. Mais la question de départ était de savoir si avec une requête par exemple ou une quelque opération mysql, je pouvais hacher tous les enregistrements de la colonne 'pass' avec SHA1 sans les faire un par un...

  4. #4
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Comment le ferais-tu "un par un" ? Avec une requête UPDATE non ? Et bien avec une requête UPDATE encore plus simple, tu fais toute la table d'un coup !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE cpte
    SET pass = SHA1(pass)
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    295
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 295
    Par défaut
    C'est quelque chose que j'ignorais... Merci bien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [IB][IBQUERY][D7 pro] Création de Triggers à la volée.
    Par N1bus dans le forum Bases de données
    Réponses: 6
    Dernier message: 13/10/2004, 14h23
  2. [JpGraph] code barre à la volée?
    Par toan dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 11/10/2004, 09h15
  3. Réponses: 8
    Dernier message: 20/07/2004, 11h46
  4. [FLASH MX 2004] Texte dynamique à la volée
    Par falcon dans le forum Flash
    Réponses: 2
    Dernier message: 27/05/2004, 22h00
  5. [langage] Tableau dans hashage
    Par iago dans le forum Langage
    Réponses: 2
    Dernier message: 26/01/2004, 16h19

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