
نوشته اصلی توسط
camelian77
در این زمینه باید یه رساله نوشت.
به طور کلی کد رو باید encrypt کنید وگرنه از دست میره، اونم زبونهای اسکریپتی مثل php رو.
روش لایسنس سرور به طور کلی از این ایده استفاده میکنه که این زیر توضیح میدم. در این ضمن توجه کنید که تمام این قصه بر این پایه بنا شده که الگوریتم مورد استفادهی ما مخفی هست و برای کاربر نهایی غیر قابل تغییر.
۱. قبلش بگذارید روش های اولیه رو شرح بدیم. سیستمی مثل مثلا بازی Age of Empires اگه دیده بوده باشید، یه سریال نامبری داشت. اون رو وارد میکردیم و تمام! قفل باز میشد. اون سریال نامبر یک کلید هست که هر کسی داشته باشه میتونه قفل رو باز کنه و اگر چند نفر یک کلید رو داشته باشن همه قفل رو باز میکنن.
۲. بعد سیستمهایی اومد که با اینترنت اکتیویت میشدن. این مد نظر ما هست.
توی license server کاری که میکنیم این هست. اسکریپت شما به عنوان کلاینت یه مقداری اطلاعات از کاربر (مشتری شما) دریافت میکنه، مثلا یک کد اکتیویشن (Key-Eins) .
سپس خودش از محیط اش یه مقدار اطلاعات جمع آوری میکنه (Deployment Data) مثل آی پی و هاست نیم سرور (مثال: سی پنل با این دو کار میکنه)
داخل هر نسخهای که تحویل شده هم یک سریال منحصر به فرد وجود داره (Identification Key) . مجموعهی این اطلاعات تشکیل یک self-key رو میدن که کاملا یکتا و غیر بازگشتی هست و نوعی private key هست و سپس به سرور مرکزی شما license server فرستاده میشه تا بررسی شه.
داخل سرور شما یک پروسه تشخیص میده که آیا این self-key درست هست یا نه و این کار با روش مقایسه انجام میشه.
>>>> سرور از اطلاعات دریافت کرده رو دوباره پروسس میکنه (به روش قبل) تا یک کلید دیگه به دست بیاره یک نوع public key. سپس این دو کلید با هم به کلاینت فرستاده میشن و انجا بررسی میشن که آیا با هم برابر هستند یا نه؟ توجه کنید که این برابری چیزی غیر از A == B هست. !!
اگر برابری اتفاق افتاد برنامه شما اجرا میشه. اگر نیفتاد؟
بووم.