Активация программы через ключ на временный срок! - C#
Формулировка задачи:
Здравствуйте!
Я хочу сделать активацию программы через ключ.
Как именно все работает.
Пользователь запускает программу открывается форма 1 не активированная, и в текст боксе ему генерируется ключ привязанный к железу.
Он копирует этот ключ и скидывает мне я его активирую на хостинге в txt файле, где лежат все ключи.
После активации пользователь запускает программу и открывает уже 2 форма активированная.
Но сразу же проблема, активация получается только на постоянный срок.
До того пока ключ из базы не уберешь у пользователя он всегда будет активен.
Как сделать активацию например на 31 день?
Чтобы после добавления на хостинг в txt файл, ключ покупателя у него она была активирована на 31 день.
А на активированной форме 2 отображалось надпись ключ активирован осталось (30 дней)
И эти цифры должны будут уменьшатся каждый день, до 0, когда 31 заканчивается, форма возвращается статус не активирован и кидает на форму 1.
Пожалуйста помогите именно кодом.
Ребят прощу помощи!
Решение задачи: «Активация программы через ключ на временный срок!»
textual
Листинг программы
- private Form5 form5;
- public static string _key = CalculateMD5Hash(GetHWID()).ToLower();
- public static string _isactivted = "Activated - " + _key + "%";
- public static string _server = "тут ссылка на мой хостинг";
- public Form1()
- {
- InitializeComponent();
- this.Load += new EventHandler(Form1_Load);
- CheckHost();
- TextBox1.Text = _key;
- CheckHost();
- if (GET(_server, _key))
- {
- Button1.Enabled = true;
- Label2.Text = "Ключ активирован!";
- }
- }
- public static string CalculateMD5Hash(string input)
- {
- // Primeiro passo, calcular o MD5 hash a partir da string
- MD5 md5 = System.Security.Cryptography.MD5.Create();
- byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
- byte[] hash = md5.ComputeHash(inputBytes);
- // Segundo passo, converter o array de bytes em uma string haxadecimal
- StringBuilder sb = new StringBuilder();
- for (int i = 0; i < hash.Length; i++)
- {
- sb.Append(hash[i].ToString("X2"));
- }
- return sb.ToString();
- }
- private static string GetHWID()
- {
- var mbs = new ManagementObjectSearcher("Select ProcessorId From Win32_processor");
- ManagementObjectCollection mbsList = mbs.Get();
- string id = "";
- foreach (ManagementObject mo in mbsList)
- {
- id = mo["ProcessorId"].ToString();
- break;
- }
- return id;
- }
- private static bool GET(string Url, string Data)
- {
- System.Net.WebRequest req = System.Net.WebRequest.Create(Url + "?idname=" + Data);
- System.Net.WebResponse resp = req.GetResponse();
- System.IO.Stream stream = resp.GetResponseStream();
- System.IO.StreamReader sr = new System.IO.StreamReader(stream);
- string Out = sr.ReadToEnd();
- sr.Close();
- if (_isactivted.Equals(Out))
- {
- return true;
- }
- else return false;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д