مرحباً. هذا سؤال غبي على الأرجح، لكننا نقوم بترحيل منتدانا من XenForo إلى Discourse. لدينا خادم خلفي للمصادقة يتضمن الاتصال بقاعدة البيانات والتحقق من بيانات الاعتماد مقابل جدول المستخدمين.
خوارزمية bcrypt الخاصة بـ XenForo عملت كما هو متوقع، ودون أي متاعب. عندما انتقلنا إلى Discourse، ومع ذلك، لم تبدو خوارزمية PBKDF2 متوافقة مع توقعاتي. نفس كلمة المرور بالضبط، نفس الملح بالضبط، نفس عدد التكرارات والطول بالضبط، ولكن تجزئة الإخراج مختلفة.
لقد جربت تطبيقات مختلفة لخوارزمية PBKDF2، لكنها جميعًا تنتج نفس التجزئة (المختلفة عن Discourse). بما في ذلك تطبيقي الخاص.
أفضل تجنب آليات مثل OAuth2 أو SSO بسبب الحمل الإضافي والعمل الإضافي الذي تفرضه علينا.
هل استخدم أي شخص Discourse لمثل هذه الحالات، وإذا كان الأمر كذلك، كيف قمت بحل هذه المشكلة؟
لقد استخدمنا بشكل أساسي تطبيق crypto/bcrypt الخاص بـ Go لـ Xenforo. نفس التجزئات من تطبيقات خوارزميات pbkdf2 المختلفة تشير لي إلى أن Go ربما يخزن السلاسل أو يحول السلاسل إلى بايتات بطريقة مختلفة إلى حد ما.
سيتعين علي تجربة ذلك غدًا (الوقت متأخر هنا). إذا أعطاني OpenSSL النتيجة المرجوة، فسيتعين علي البحث عن روابط OpenSSL لـ Go، أو سيتعين علي التبديل إلى لغة مختلفة تمامًا (لديها روابط OpenSSL) للواجهة الخلفية.