Précédent   Forum des professionnels en informatique > Bases de données > MySQL
MySQL Forum d'entraide MySQL. Avant de poster -> FAQ MySQL, Tutoriels MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/01/2012, 12h04   #1
Membre du Club
 
Inscription : mars 2008
Messages : 274
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 274
Points : 50
Points : 50
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 :
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,
yann18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 14h07   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 029
Points : 18 331
Points : 18 331
Envoyer un message via MSN à CinePhil
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 de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 14h52   #3
Membre du Club
 
Inscription : mars 2008
Messages : 274
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 274
Points : 50
Points : 50
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...
yann18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 14h55   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
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 : 11 029
Points : 18 331
Points : 18 331
Envoyer un message via MSN à CinePhil
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 :
1
2
UPDATE cpte
SET pass = SHA1(pass)
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« 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 Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 15h06   #5
Membre du Club
 
Inscription : mars 2008
Messages : 274
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 274
Points : 50
Points : 50
C'est quelque chose que j'ignorais... Merci bien.
yann18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h11.


 
 
 
 
Partenaires

Hébergement Web