public static string SaveLicence(LicenceModel lm) { string text = "Licence.Licence"; text = LicenceConfig.CreateAssemblyLocationFile(text); try { FileStream fileStream = new FileStream(text, FileMode.Open, FileAccess.Write, FileShare.None); StreamWriter streamWriter = new StreamWriter(fileStream); streamWriter.WriteLine(DES.Instance(LicenceConfig.DesPwd).EncryptString(lm.CustomerName)); streamWriter.WriteLine(DES.Instance(LicenceConfig.DesPwd).EncryptString(lm.CustomerCode)); streamWriter.WriteLine(lm.MachineCode); streamWriter.WriteLine(DES.Instance(LicenceConfig.DesPwd).EncryptString(lm.RegisteDate)); streamWriter.WriteLine(DES.Instance(LicenceConfig.DesPwd).EncryptString(lm.UseDays.ToString())); streamWriter.WriteLine(DES.Instance(LicenceConfig.DesPwd).EncryptString(lm.ConnectCount.ToString())); streamWriter.WriteLine(lm.LinceCode); streamWriter.Close(); streamWriter.Dispose(); fileStream.Close(); fileStream.Dispose(); } catch { } return(text); }
public static string GetRunLicenceCode(LicenceModel lm, ref string FilePath) { FilePath = string.Empty; LicenceServer.SetIntCode(); string text = string.Concat(new object[] { lm.CustomerCode, lm.RegisteDate, lm.UseDays.ToString(), lm.ConnectCount, lm.MachineCode }); int length = text.Length; LicenceServer.intNumber = new int[length]; LicenceServer.Charcode = new char[length]; for (int i = 1; i < LicenceServer.Charcode.Length; i++) { LicenceServer.Charcode[i] = Convert.ToChar(text.Substring(i - 1, 1)); } for (int j = 1; j < LicenceServer.intNumber.Length; j++) { LicenceServer.intNumber[j] = LicenceServer.intCode[Convert.ToInt32(LicenceServer.Charcode[j])] + Convert.ToInt32(LicenceServer.Charcode[j]); } string text2 = ""; for (int j = 1; j < LicenceServer.intNumber.Length; j++) { if (LicenceServer.intNumber[j] >= 48 && LicenceServer.intNumber[j] <= 57) { text2 += Convert.ToChar(LicenceServer.intNumber[j]).ToString(); } else if (LicenceServer.intNumber[j] >= 65 && LicenceServer.intNumber[j] <= 90) { text2 += Convert.ToChar(LicenceServer.intNumber[j]).ToString(); } else if (LicenceServer.intNumber[j] >= 97 && LicenceServer.intNumber[j] <= 122) { text2 += Convert.ToChar(LicenceServer.intNumber[j]).ToString(); } else if (LicenceServer.intNumber[j] > 122) { text2 += Convert.ToChar(LicenceServer.intNumber[j] - 10).ToString(); } else { text2 += Convert.ToChar(LicenceServer.intNumber[j] - 9).ToString(); } } lm.LinceCode = text2; FilePath = LicenceConfig.SaveLicence(lm); LicenceServer.Licence = lm; return(lm.LinceCode); }
public static LicenceModel ReadLicence(string FilePath, string RegesiterMachineCode, ref string ErrorMessage) { LicenceModel licenceModel = new LicenceModel(); ErrorMessage = string.Empty; LicenceModel result; if (!File.Exists(FilePath)) { ErrorMessage = "未找到许可文件!"; result = licenceModel; } else { FileStream fileStream = new FileStream(FilePath, FileMode.Open, FileAccess.Read, FileShare.None); StreamReader streamReader = new StreamReader(fileStream); string text = streamReader.ReadLine(); string text2 = streamReader.ReadLine(); string machineCode = streamReader.ReadLine(); string text3 = streamReader.ReadLine(); string text4 = streamReader.ReadLine(); string text5 = streamReader.ReadLine(); string text6 = streamReader.ReadLine(); streamReader.Close(); streamReader.Dispose(); fileStream.Close(); fileStream.Dispose(); text = DES.Instance(LicenceConfig.DesPwd).DecryptString(text); text2 = DES.Instance(LicenceConfig.DesPwd).DecryptString(text2); text3 = DES.Instance(LicenceConfig.DesPwd).DecryptString(text3); text4 = DES.Instance(LicenceConfig.DesPwd).DecryptString(text4); text5 = DES.Instance(LicenceConfig.DesPwd).DecryptString(text5); licenceModel.CustomerName = text; licenceModel.CustomerCode = text2; licenceModel.MachineCode = machineCode; licenceModel.RegisteDate = text3; licenceModel.UseDays = ((text4 == string.Empty) ? "0" : text4); licenceModel.ConnectCount = ((text5 == string.Empty) ? 0 : int.Parse(text5)); licenceModel.LinceCode = text6; if (!string.IsNullOrEmpty(RegesiterMachineCode)) { if (RegesiterMachineCode != licenceModel.MachineCode) { ErrorMessage = "机器码识别失败,许可不可用,如需继续使用,请和我们取得联系!"; } } else if (LicenceServer.GetMachineCode(true) != licenceModel.MachineCode) { ErrorMessage = "机器码识别失败,许可不可用,如需继续使用,请和我们取得联系!"; } if (LicenceServer.GetRunLicenceCode(licenceModel) == text6) { DateTime t = DateTime.Parse(text3); DateTime t2 = t.AddDays((double)int.Parse(licenceModel.UseDays.ToString())); if (t2 < DateTime.Now) { ErrorMessage = "许可已过期"; LicenceConfig.PauseLicence(FilePath, licenceModel); } if (t > DateTime.Now) { ErrorMessage = "注册时间被篡改,许可不可用,如需继续使用,请和我们取得联系!"; } } else { ErrorMessage = "许可文件被篡改,许可不可用,如需继续使用,请和我们取得联系!"; } result = licenceModel; } return(result); }