//Метод декриптования файла ключа //Возвращает true или false в зависимости от того, //совпал ли ключ в файле и входная строка public bool DecodeKey(string inString, string path) { string decryptstring = null; byte[] key = new byte[0x20]; for (int i = 0; i <= 0x1f; i++) { key[i] = 0x1f; } Rijndael.Key = key; using (FileStream fs = File.Open(path, FileMode.Open)) { //FileStream fs = new FileStream(path, FileMode.Open); byte[] IV = new byte[Rijndael.IV.Length]; fs.Read(IV, 0, IV.Length); Rijndael.IV = IV; ICryptoTransform transformer = Rijndael.CreateDecryptor(); CryptoStream cs = new CryptoStream(fs, transformer, CryptoStreamMode.Read); StreamReader sr = new StreamReader(cs, Encoding.UTF8); decryptstring = sr.ReadToEnd(); CryptoClass crypto = new CryptoClass(); decryptstring = decryptstring.Substring(0, decryptstring.IndexOf("|")); if (!(decryptstring == inString)) { return(false); } else { return(true); } } }
/// <summary> /// /// </summary> /// <returns></returns> private static bool LicensyaCheck() { try { string keyfile = @"keyfile.dat"; string sysSyrialize = @"sysSyrialize.dat"; string curFile = !File.Exists(keyfile) ? !File.Exists(sysSyrialize) ? null : sysSyrialize : keyfile; //if (File.Exists(keyfile)) // curFile = keyfile; //else if (File.Exists(sysSyrialize)) // curFile = sysSyrialize; //else // curFile = null; if (!string.IsNullOrEmpty(curFile)) { CryptoClass crypto = new CryptoClass(); //if (!crypto.Form_LoadTrue()) Close(); string date = crypto.GetDecodeKey(curFile).Substring(crypto.GetDecodeKey(curFile).IndexOf("|") + 1); //Logger.WriteLog(date, 0, "res == 0"); if (DateTime.Parse(date).AddDays(1) <= DateTime.Now) { if (File.Exists(curFile)) { File.Delete(curFile); } Logger.WriteLog("start", 0, "key == 0"); return(false); } else { Console.Title = $"UrineStripReader40_Listener:[{VerApp}.......{date}]"; Logger.WriteLog("start", 0, "key == 1"); return(true); } } else { return(false); } } catch (Exception ex) { Console.WriteLine(); Logger.WriteLog(ex.Message, 0, "key == 0"); } return(false); }