سؤال

أنا أستخدم C# و .NET 2.0. يحتاج تطبيقي إلى طريقة ما للتحقق من المستخدمين المختلفين ، لذا سأستخدم معرف الأجهزة ، لكنني رأيت أنه يمكنني استخدام فقط:

  • عنوان MAC - قابل للتغيير بسهولة وليس الجميع لديه // لا
  • معرف المعالج - باستخدام WMI ، يقوم بإرجاع قيمة لنموذج وحدة المعالجة المركزية ، فهو ليس فريدًا / / لا
  • مسلسل اللوحة الأم - ليس كل لوحة أم لديها // لا
  • مسلسل وحدة تخزين Windows - لست متأكدًا مما إذا كان سيتم تغييره على Windows إعادة تثبيت وتنسيق مستوى الصوت

فهل هناك شيء لم أذكره لـ Hwid؟ أريد شيئًا يتمتع به الجميع ولن يتم محوها على Windows. وإلا ، يجب أن أستخدم الرقم التسلسلي لحجم Windows.


تحرير: من الجمال ، أعتقد أنه من الأفضل استخدام معرف HDD. كيف يمكن الحصول عليها؟ EDIT2: لقد قرأت للتو أن محركات SCSI ليس لها مسلسل. هل هذا صحيح؟

التحرير النهائي: أنا بالفعل أستخدم مسلسل محرك الجذر على تطبيقي. إنه يعمل بشكل جيد. شكرا لكم جميعا.

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

المحلول

الرقم التسلسلي HDD: فريد ، غير قابل للتغيير ، والجميع لديه.

ليس خيارًا مثاليًا ولكن ...

نصائح أخرى

حسنًا ، سأذهب لأكثر من معرف واحد. إذا قمت بدمج ما يكفي من المعرفات ، فسوف يحصلون على ما يكفي من التفرد.

تحرير: قد تذهب أيضًا إلى المكان الذي تم تثبيته في البرنامج الصلب أيضًا (طبق ، أسطوانة وما إلى ذلك)

لماذا تريد استخدام معرف الأجهزة؟ سأذهب مع نوع من الأمن القائم على النماذج (أو القائمة على الإعلان) ، أنا.

ومع ذلك ، بالنظر إلى ذلك: إن الشيء المتعلق بـ HWID هو أنه يحدد تكوين الكمبيوتر المعين: إنه مصمم للتغيير إذا كانت هناك تغييرات في النظام. لقد ذكرت أن Windows Volume Serial يمكن أن يتغير عند إعادة التثبيت والإصلاح ، ولكن لن يتم إعادة تثبيت برنامجك أيضًا في تلك المرحلة؟ يمكن أن يتغير HDD Serial أيضًا إذا ، على سبيل المثال ، يقوم المستخدم بتبادل محركات الأقراص الصلبة لسبب ما.

إذا كان عليك استخدام HWID ، فربما تحتاج إلى تحديد واحد (أو أكثر) من الخيارات المتاحة لتوفير التفرد وإما رمز حولها ، أو إبلاغ المستخدمين بتغييرات الأجهزة التي تتطلب إعادة تثبيت و/أو إعادة تكوين برنامجك .

عنوان MAC غير موثوق للغاية. يجب عليك استخدام شيء لا يمكن تغييره معرف وحدة المعالجة المركزية أو معرف IDE HDD.

هنا تريد أن أعني:
http://www.soft.tahionic.com/download-hdd_id/index.html
http://www.soft.tahionic.com/download-hdd_id/hardware٪20id٪20Programmer٪27S٪20Dll.html


وللإجابة على سؤالك ، نعم ، ليس لدى SCSI معرف الأجهزة.

هل يجب أن تفكر في الأمان أو الموثوقية فقط ، أي هل يريد المستخدم عبث فحص الهوية الخاص بك؟ إذا كنت بحاجة إلى أمان (مرتفع) ، فقم بشراء أحد منتجات "حماية البرمجيات" ، فهذا أرخص بكثير من القيام بذلك بنفسك.

لا يوجد أمن عالي مطلوب؟ => احتمال آخر هو استخدام المستخدم أو الجهاز SID. يجب أن تأخذ في الاعتبار أن تطبيقك يتم تنفيذه elvated => المستخدم هو المسؤول بعد ذلك.

أخيرًا وليس آخرًا: اكتب قيمة عشوائية لبعض البايتات في السجل (ربما في أماكن مختلفة) تحت HKEY_Current_user واستخدمها كمعرف.

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