Hola. Probablemente sea una pregunta tonta, pero hemos estado migrando nuestro foro de XenForo a Discourse. Tenemos un servidor backend para la autorización que implica conectarse a la base de datos y verificar las credenciales contra la tabla de usuarios.
El algoritmo bcrypt de XenForo funcionó como se esperaba y sin ningún problema. Sin embargo, cuando migramos a Discourse, el algoritmo PBKDF2 no pareció cumplir mis expectativas. Misma contraseña exacta, misma sal exacta, mismo número exacto de iteraciones y longitud, pero el hash de salida es diferente.
Probé varias implementaciones diferentes del algoritmo PBKDF2, pero todas producen el mismo hash (diferente al de Discourse). Incluyendo mi propia implementación.
Preferiría evitar mecanismos como OAuth2 o SSO debido a la sobrecarga adicional y al trabajo adicional que nos imponen.
¿Alguien ha utilizado Discourse para tales casos de uso y, si es así, cómo resolvieron este problema?
Principalmente utilizamos la implementación crypto/bcrypt de Go para Xenforo. Los mismos hashes de varias implementaciones de algoritmos pbkdf2 me sugieren que Go posiblemente almacena cadenas o las convierte a bytes de una manera algo diferente.
Tendré que probarlo mañana (es tarde por aquí). Si OpenSSL me da el resultado deseado, entonces tendría que buscar enlaces de OpenSSL para Go, o tendría que cambiar a un idioma completamente diferente (que tenga enlaces de OpenSSL) para el backend.
Lo siento, actualmente no estoy en posición de decírtelo ya que las zonas horarias son molestas. Es muy tarde por aquí y solo podría hacerlo al día siguiente.
No importa. Tuve que usar la representación hexadecimal de la sal como argumento, no la sal decodificada como estaba haciendo en la publicación anterior. Ahora los hashes son iguales.