Активация программы через ключ на временный срок! - 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;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5
Похожие ответы