كيفية حفظ كلمة مرور قاعدة البيانات بشكل فعال في تطبيق سطح المكتب؟

StackOverflow https://stackoverflow.com/questions/2155279

سؤال

أقوم بعمل تطبيق سطح المكتب (دعنا ندعو ذلك تطبيق قاعدة البيانات (MySQL). يشارك المزيد من مستخدمي التطبيق مستخدم قاعدة بيانات واحد. مثال: يتصل مستخدمو تطبيق John and Mike بـ DB كـ "dbuser" ، إلخ.

المشكلة هي : كيف يمكنني حفظ كلمات المرور بشكل فعال لمستخدمي DB؟ (يتم تخزين الأشخاص ذوي الإعاقة لدى مستخدمي التطبيق في DB).

الحلول الممكنة التي وجدتها: 1. في الكود - هذا غبي في الواقع: D 2. في ملف النص - من السهل القراءة! 3. مشفر في ملف EXTREM - جيد ، ولكن يحتاج إلى الوصول إلى التطبيق.

هل كانت مفيدة؟

المحلول

(يتم تخزين الأشخاص ذوي الإعاقة لدى مستخدمي التطبيق في DB).

تشفير كلمات المرور المخزنة باستخدام SHA1/SHA2 خوارزمية. هذه هي التقنية الأكثر استخداما. أنا لست مطور .NET ولكني متأكد تمامًا من أنها توفر الوظيفة في مكان ما.

عندما يقوم المستخدم بتسجيل الدخول ، قم بتشفير كلمة المرور المعطاة مرة أخرى وقارنها بالذات المخزنة. إذا كانت متساوية ، فدع المستخدم يسجل الدخول.

نصائح أخرى

يمكنك تخزينه في ملف INI بالتنسيق المشفر. هذه هي أفضل طريقة IMHO. أقوم بتخزين سلسلة الاتصال في App.Config من تطبيق .NET بالتنسيق المشفر.

تعديل:

لتحرير سلسلة الاتصال ، أستخدم قيمة تكوين أخرى في ملفات appsettings من ملف app.config csencryption = "y | n | r"

إذا كانت y ، يتم تشفير سلسلة الاتصال ، وفك تشفيرها واستخدمها.

إذا كانت n ، فلا يتم تشفير سلسلة الاتصال ، فاستخدمها مباشرة.

إذا كانت R ، فهي غير مشفرة ، وتشفيرها وتحديث سلسلة الاتصال وتعيين csencryption على 'y' في app.config.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top