Salut. C’est probablement une question stupide, mais nous avons migré notre forum de XenForo vers Discourse. Nous avons un serveur backend pour l’autorisation qui implique de se connecter à la base de données et de vérifier les informations d’identification par rapport à la table des utilisateurs.
L’algorithme bcrypt de XenForo a fonctionné comme prévu, et sans aucun problème. Cependant, lorsque nous avons migré vers Discourse, l’algorithme PBKDF2 ne semble pas avoir répondu à mes attentes. Même mot de passe exact, même sel exact, même nombre d’itérations et même longueur exacts, mais le hachage de sortie est différent.
J’ai essayé diverses implémentations de l’algorithme PBKDF2, mais elles produisent toutes le même hachage (différent de celui de Discourse). Y compris ma propre implémentation.
Je préférerais éviter les mécanismes comme OAuth2 ou SSO en raison de la surcharge supplémentaire et du travail supplémentaire qu’ils nous imposent.
Quelqu’un a-t-il utilisé Discourse pour de tels cas d’utilisation, et si oui, comment avez-vous résolu ce problème ?
Nous avons principalement utilisé l’implémentation crypto/bcrypt de Go pour Xenforo. Les mêmes hachages provenant de diverses implémentations d’algorithmes pbkdf2 me suggèrent que Go stocke peut-être les chaînes ou convertit les chaînes en octets d’une manière quelque peu différente.
Je devrai essayer cela demain (il est tard ici). Si OpenSSL me donne le résultat souhaité, alors je devrai chercher des liaisons OpenSSL pour Go, ou je devrai passer à un langage entièrement différent (qui a des liaisons OpenSSL) pour le backend.
Désolé, je ne suis pas en mesure de vous le dire actuellement car les fuseaux horaires sont ennuyeux. Il est très tard ici et je ne pourrai le faire que le lendemain.
Laissez tomber. J’ai dû utiliser la représentation hexadécimale du sel comme argument, et non le sel décodé comme je le faisais dans le message ci-dessus. Maintenant, les hachages sont égaux.