Rendre compatible le hachage sha1 sur forum phpbb3

Ce forum vous servira à trouver de l'aide uniquement en ce qui concerne le développement d'un de vos MODs, ou l'adaptation d'un MOD phpBB2 pour phpBB3.

Modérateur: Equipe

Rendre compatible le hachage sha1 sur forum phpbb3

Messagede smax2k8 » 04 Jan 2008 à 14:27

Bonjour,

Je souhaite créer un MOD qui permet de rendre compatible les mot de passe sha1 sur phpbb3. Je souhait créer ce MOD car j'ai migré de punbb vers phpbb3 et le problème est que les deux forums n'utilise pas le même hachage/cryptage des mot de passe. Donc ce MOD servira pour moi et sûrement pour d'autre personne souhaitant passe de punbb a phpbb3 sans demander au membre d'utiliser la fonction "J'ai oublié mon mot de passe".
Je n'ai aucune idéel comment faire ce MOD. Je n'ai pas une grand compétence dans ce domaine.

Merci d'avance pour votre aide ;)
Dernière édition par smax2k8 le 06 Jan 2008 à 11:02, édité 3 fois.
Avatar de l’utilisateur
smax2k8
Posteur néophyte
Posteur néophyte
 
Messages: 18
Inscription: 02 Jan 2008 à 23:24

Re: [AIDE] Rendre compatible le hachage sha1 sur forum phpbb3

Messagede Genova » 05 Jan 2008 à 02:49

Salut,
je dirai que tout se joue dans le fichier includes/auth/auth_db.php apparament ils ont prévus un système pour la migration de phpBB2 (md5) vers phpBB3 (format fait par eux même apparament). Regarde à partir de la ligne 115 du fichier, si le champ "user_pass_convert" est utilisé à 1, lors de la connexion du membre phpBB3 va recoder le mot de passe du membre à partir du mot de passe entré par le membre en clair, et repassé ce champ "user_pass_convert" à 0. Donc là où tu interviens, c'est ici je pense :
Code: Tout sélectionner
         if (md5($password_old_format) == $row['user_password'] || md5(utf8_to_cp1252($password_old_format)) == $row['user_password'])

à la ligne 134.

Et probablement aussi ici :
Code: Tout sélectionner
      if (strlen($row['user_password']) == 32)

à la ligne 170 en remplaçant 32 (longueur d'un hash MD5) par 40 (longueur d'un hash SHA1).


Je n'ai pas testé ce que je viens de te donner, mais dans la théorie tout est ici. Tu devrais pouvoir te débrouiller avec ça, bonne chance !

PS : dommage que phpBB3 n'est pas prévu ce genre de cas de figure, il auraient beaucoup gagner à faciliter les conversions vers leur forum.
Avatar de l’utilisateur
Genova
Pistolero des MODs
 
Messages: 7588
Inscription: 18 Nov 2003 à 18:45
Localisation: En train de programmer, logique non?

Re: [AIDE] Rendre compatible le hachage sha1 sur forum phpbb3

Messagede smax2k8 » 05 Jan 2008 à 14:47

Un énorme merci, si s'est sa ! Je test sa ce soir ! :mrgreen: :mrgreen:
Avatar de l’utilisateur
smax2k8
Posteur néophyte
Posteur néophyte
 
Messages: 18
Inscription: 02 Jan 2008 à 23:24

Re: [AIDE] Rendre compatible le hachage sha1 sur forum phpbb3

Messagede smax2k8 » 05 Jan 2008 à 21:46

Les comptes en md5 marche et les comptes en sha1 sa donne sa :
"Il n’a pas été possible de convertir votre mot de passe lors de la mise à jour du forum. Redemandez un mot de passe. Si le problème persiste, contactez l’administrateur du forum."

Jai pas trouver le 1 comme tu dit (ligne 116) : if ($row['user_pass_convert'])
Avatar de l’utilisateur
smax2k8
Posteur néophyte
Posteur néophyte
 
Messages: 18
Inscription: 02 Jan 2008 à 23:24

Re: [AIDE] Rendre compatible le hachage sha1 sur forum phpbb3

Messagede Genova » 05 Jan 2008 à 23:17

Je viens de tester et c'est bien ce que je disais :
- J'ai installé un forum phpBB3 neuf en local
- J'ai édité mes informations dans la table phpbb3_users en mettant un mot de passe crypté en SHA1 dans le champ user_password
- J'ai édité le champ user_pass_convert en le mettant à 1

En tentant de me connecter, il m'a sorti ton erreur.

J'ai donc modifié le fichier includes/auth/auth_db.php en changeant les lignes :
Code: Tout sélectionner
         if (md5($password_old_format) == $row['user_password'] || md5(utf8_to_cp1252($password_old_format)) == $row['user_password'])

en
Code: Tout sélectionner
         if (sha1($password_old_format) == $row['user_password'] || sha1(utf8_to_cp1252($password_old_format)) == $row['user_password'])


et la ligne
Code: Tout sélectionner
      if (strlen($row['user_password']) == 32)

en
Code: Tout sélectionner
      if (strlen($row['user_password']) == 40)


Et cette fois ci en me connectant tout à marché nickel : connexion réussie, et en regardant à nouveau la table phpbb3_users mon mot de passe a automatiquement été recréé par phpBB3 à partir de l'ancien.

En conclusion, tu as juste les deux lignes ci dessus à changer pour que tes membres se connectent en sha1. Il faut bien sure passer le champ user_pass_convert à 1 pour les membres avec un mot de passe sha1.
Avatar de l’utilisateur
Genova
Pistolero des MODs
 
Messages: 7588
Inscription: 18 Nov 2003 à 18:45
Localisation: En train de programmer, logique non?

Re: [AIDE] Rendre compatible le hachage sha1 sur forum phpbb3

Messagede smax2k8 » 06 Jan 2008 à 01:03

Sa marche ! Sa n'a pas marcher tout taleur car les mot de passe était déja convertie l'or de la conversion mais sétai mal fait donc sa na pas marcher mais après jai mi les mots de passes directement sans conversion donc en sha1 et sa a marché !

Merci pour tout !

Attention :
Pour que sa marche il faut modifier la longueur maximale accepté dans la base de donner (table phpbb2_users > user_password mettre en varache 40 au lieu de 32).
Avatar de l’utilisateur
smax2k8
Posteur néophyte
Posteur néophyte
 
Messages: 18
Inscription: 02 Jan 2008 à 23:24

Re: Rendre compatible le hachage sha1 sur forum phpbb3

Messagede psykoprof » 24 Jan 2009 à 02:25

Bonjour ! J'ai lu à plusieurs reprises ce sujet et j'ai fait le transfert de punbb vers pgpbb2 puis vers phpbb3 mais je crois que les modifs des fichiers n'ont pas été faites au bon moment ! Pourriez vous me dire à quelle moment de l procédure il faut modifier le code source et quelle procédure utiliser pour rapatrier les mots de passes ?

De plus je me retrouve avec un encodage des caracteres bizarres dans phpbb3 (Informations générales ) je n'avais pas ça dans punbb ni phpbb2 ! D'où cela peut-il venir ?

Merci d'avance !
psykoprof
Posteur néophyte
Posteur néophyte
 
Messages: 4
Inscription: 19 Fév 2008 à 00:09


Retourner vers Aide au développement

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Ask Jeeves [Bot] et 2 invités

Liens : phpBB.biz • phpBBHacks.com • phpBB-Seo.com • EzCom-fr.com • phpBB-Conseils.com • phpBB3 Styles • phpBB podpora • phpBB Portugal • Tapatalk • Net Avenir • PromoBenef • Ticket Gagnant •