Page 1 sur 1

modifier la valeur d’un mot de passe dans une table

Posté : 11 sept. 2011, 10:10
par agautier4
Bonjour,

voilà mon problème
J’utilise un site sous spip pour gérer les quelques 600 élèves de mon établissement scolaire.
j'ai trouvé un plugin pour importer des liste en csv. Il s'agit de csv2spip
j'ai déjà modifié le code de ce fichier car il y avait déjà un défaut pour les login.
alors voilà les login sont entrés dans la base mais pas les mot de passe : y a un souci

1er question : je voulais savoir si il était possible de modifier ces mots de passe directement dans la base avec phpmyadmin
quand je regarde mon mot de passe dans la base, il ne correspond pas du tout à celui que j'entre pour me connecter ? y a t il un cryptage ?

2e question : si il est possible de changer le mot de passe directement dans la base, comment le faire. je ne connais pas le langage php. je voudrais juste mettre le meme mot de passe à tous mes élèves, ils le changeront eux meme par la suite.

ces auteurs sont dans la table "spip_auteurs"
il faudrait changer la valeur du champ "pass" si cela est possible

voilà le debut du code affiché dans la requete sql

SELECT * FROM `spip_auteurs` WHERE 1

merci de votre aide

Re: modifier la valeur d’un mot de passe dans une table

Posté : 11 sept. 2011, 10:43
par Cyrano
Bonjour,

voilà mon problème
J’utilise un site sous spip pour gérer les quelques 600 élèves de mon établissement scolaire.
j'ai trouvé un plugin pour importer des liste en csv. Il s'agit de csv2spip
j'ai déjà modifié le code de ce fichier car il y avait déjà un défaut pour les login.
alors voilà les login sont entrés dans la base mais pas les mot de passe : y a un souci

1er question : je voulais savoir si il était possible de modifier ces mots de passe directement dans la base avec phpmyadmin
quand je regarde mon mot de passe dans la base, il ne correspond pas du tout à celui que j'entre pour me connecter ? y a t il un cryptage ?

2e question : si il est possible de changer le mot de passe directement dans la base, comment le faire. je ne connais pas le langage php. je voudrais juste mettre le meme mot de passe à tous mes élèves, ils le changeront eux meme par la suite.

ces auteurs sont dans la table "spip_auteurs"
il faudrait changer la valeur du champ "pass" si cela est possible

voilà le debut du code affiché dans la requete sql

SELECT * FROM `spip_auteurs` WHERE 1

merci de votre aide
Il est probable que les mots de passes sont hachés en base avec md5(), fonction qui existe également dans MySQL, donc pour valider une identification, il faut que la requête en tienne compte et hache de la même manière le mot de passe saisi par l'utilisateur souhaitant se connecter.

Il faudrait un exemple ou deux des mots de passe tels qu'ils sont sur le ficher CSV et ce qui a été enregistré dans la base, ça nous donnerait une idée de base.

Quant à changer le mot de passe globalement, c'est possible quoique pas très prudent, mais il conviendra de tenir compte du point précédent.

Mais je ne connais pas suffisamment SPIP pour confirmer quelle technique a été mise en oeuvre.

Re: modifier la valeur d’un mot de passe dans une table

Posté : 11 sept. 2011, 11:07
par agautier4
la forme de mon fichier csv est la suivante avec separateur en ;
login prenom pass pseudo_spip email groupe ss_groupe
boniabis gsi18130 abbis-gael REDACTEURS

voilà ce que me donne ensuite la base
id_auteur nom bio email nom_site url_site login pass low_sec
5653 abbis-gaelle boniabis 75a93668bb7f530a20dc99ff391d0b77b1ff511a6e908ec70...

voilà si vous pouviez me renseigner davantage pour cette historie de pass, merci bien

merci bien
j'ai des anciens eleves qui ont un code en low_sec, mais pas les nouveaux que j'entre ! Je ne sais pas si ca entre en compte ou pas dans mon probleme.

Re: modifier la valeur d’un mot de passe dans une table

Posté : 11 sept. 2011, 11:15
par Cyrano
Vu le nombre de caractères, ça ne doit pas être du MD5, donc peut-être SHA1, ou alrors un chiffrement directement dans MySQL avec AES_ENCRYPT, je ne saurais pas dire, il faudrait fouiller dans le code de SPIP. Peut-être que quelqu'un d'autre aura une meilleure idée que moi :?

Re: modifier la valeur d’un mot de passe dans une table

Posté : 11 sept. 2011, 11:23
par agautier4
en gros si je veux remplacer tous les mot de passe pas un seul il faut l'encoder dans le même code qui apparait dans la base ? C'est bien cela ?

Re: modifier la valeur d’un mot de passe dans une table

Posté : 11 sept. 2011, 11:28
par agautier4
ou alors

n' y a t il pas un moyen de modifier la colonne 'login' en important directement les mots de passe dans myphpadmin ?

il faurdait la passer d'abord dans le "hachoir" pour l'encoder c’est peu etre cela la logique a adpoter ?

Re: modifier la valeur d’un mot de passe dans une table

Posté : 11 sept. 2011, 11:31
par Cyrano
ou alors

n' y a t il pas un moyen de modifier la colonne 'login' en important directement les mots de passe dans myphpadmin ?

il faurdait la passer d'abord dans le "hachoir" pour l'encoder c’est peu etre cela la logique a adpoter ?
Précisément, donc normalement, si le plugin est correctement fait, ce hachage est automatiquement fait au moment de l'importation. Il faudrait tester l'identification sur un de ces profils après importation.

Re: modifier la valeur d’un mot de passe dans une table

Posté : 11 sept. 2011, 12:08
par agautier4
oui mais comment on fait le test ?

j'ai essayer plusieurs fois en effacant après les utilisateurs lorsque cela ne fonctionnait pas

en mettant un pot de passe et n'en mettant pas (normalement cela met le login en mot de passe).


par un miracle j'ai réussi une fois à intégrer un auteur puis cela n'a plus fonctionné

Re: modifier la valeur d’un mot de passe dans une table

Posté : 11 sept. 2011, 16:05
par Cyrano
oui mais comment on fait le test ?
Ben tout simplement en affichant le site lui-même et en essayant de se loguer avec l'identifiant et le mot de passe sélectionné à partir du fichier .CSV.

Soit ça fonctionne et le problème n'existe plus, soit ça coince et il y a lieu de pousser plus loin l'investigation en oubliant pas que même si on met le même mot de passe global afin que chacun s'en choisisse un ultérieurement, d'abord ça ouvre la porte à des plaisanteries de plus ou oins bon goût, et ensuite si ça ne fonctionne pas non plus, le problème restera entier.