روش دوم:
کدهای تولید شده در این روش بلندتر و طولانی تر هستند و با SMS و تلفن (خواندن کد) و... قابل استفاده نیستند.
در این روش باید به جای کدها ، یک فایل کوچک (یکی دو کیلوبایتی) جابجا شود.
داده حجم بسیار کمی دارد ولی نمیتوان خواند یا پیامک کرد.
در این روش بجای الگوریتم DES یا AES از الگوریتم نامتقارنی مانند RSA استفاده میشود که امنیت بسیار بالاتری دارد
حتی دو فایل رد و بدل شده هم میتواند Text عادی و قابل خوانده شدن باشد.
مثلا در یک خط فایل خیلی شفاف و راحت قید شود که برنامه تا چه تاریخی کار خواهد کرد.
در انتها فایل RSA-Sign میشود.
فایل فعال سازی میتوانید چیزی شبیه این باشد:
<hardserial>xxxxxxxxx</hardserial>
<expiredate>2020-03-20</expiredate>
<rsasign>xxxxxxxxxxxxx</rsasign>
کاربر میتواند اطلاعات داخل فایل را ببینید ولی اگر تغییر دهد، امضا تطبیق نمیکند و در واقع نمیتواند آنها را تغییر دهد!
حتی برنامه خودتان در رایانه کاربر هم کلید امضاء کننده را ندارد.
یعنی اگر سورس کامل برنامه کلاینت را به کسی بدهید، باز هم نمیتواند الگوریتم را بشکند.
تنها راه کرک این برنامه تغییر کدهای exe و حذف دستورات چک کننده لایسنز و کامپایل مجدد برنامه است.
که به سطح دانش بالاتری برای کرک نیاز دارد.
یعنی کرک کننده باید exe شما را replace کند و if های لایسنز را درآن حذف کند.
ولی برای قفل فوق نمیتوان Key-Generator ساخت.
خلاصه
=====
برنامه از اطلاعات سخت افزار کاربر یک فایل تهیه و به کاربر میدهد تا آن را به شما بدهد
( این باعث میشود کد فعال سازی نهایی روی سایر رایانه ها کار نکند )
ClientApp->HardwareSerial->Hash file->Send to Company/Programmer
سرور یا برنامه کدساز شما سریال را با تاریخ مخلوط و امضاء میکند و تحویل کاربر میدهید
ServerApp->HardwareSerialHash+ExpireDate->RSASignWithPrivateKey->ActiveFile
برنامه رمز را بازکرده و کد سخت افزار و تاریخ را خارج میکند و با اعداد رایانه جاری تطبیق میدهد
ActiveFile->RSAValidationWithPublicKey->HardwareSerialHash+ExpireDate
برای الگوریتم نامتقارن RSA و مفاهیم رمزنگاری و امضاء و... و نمونه کدهای CSharp میتوانید تاپیک زیر را مرور کنید.
/Forum/Home/Topic/14-RSA-X509-Cryptography