Активация программы через ключ на временный срок! - 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д