コード例 #1
0
ファイル: LicenceServer.cs プロジェクト: myonhu/PEIS-PEIS
        public static string GetMachineCode(bool IsMD5)
        {
            string guid = LicenceServer.GetGuid();
            string text = guid.Substring(0, 24);

            char[] array  = text.ToCharArray();
            int    length = text.Length;
            string text2  = string.Empty;

            for (int i = 0; i <= length; i += LicenceServer.SpearCount)
            {
                if (i + LicenceServer.SpearCount <= length)
                {
                    text2 = text2 + text.Substring(i, LicenceServer.SpearCount) + "-";
                }
            }
            string result;

            if (IsMD5)
            {
                result = MD5X.MD5(text2.TrimEnd(new char[]
                {
                    '-'
                })).ToUpper();
            }
            else
            {
                result = text2.TrimEnd(new char[]
                {
                    '-'
                }).ToUpper();
            }
            return(result);
        }
コード例 #2
0
ファイル: LicenceServer.cs プロジェクト: myonhu/PEIS-PEIS
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
ファイル: LicenceServer.cs プロジェクト: myonhu/PEIS-PEIS
 public static string GetGuid()
 {
     return(LicenceServer.GetCpuID() + LicenceServer.GetDiskID());
 }