Example #1
0
        /// <summary>
        /// 解析授权文件获取到授权信息
        /// </summary>
        /// <param name="filePath"></param>
        /// <returns></returns>
        public LicenceModel GetLicenceModel(string filePath)
        {
            if (!FileHelper.IsExistFile(filePath))
            {
                throw new CustomException("未找到授权文件!");
            }

            licenceObj = new LicenceModel();
            using (FileStream filestrem = new FileStream(filePath, FileMode.Open))
            {
                using (StreamReader reader = new StreamReader(filestrem))
                {
                    string typeStr = AESEncrypt.Decrypt(reader.ReadLine());
                    licenceObj.LicenceType = (LicenseTypeEnum)Enum.Parse(typeof(LicenseTypeEnum), typeStr, true);
                    string keyStr = reader.ReadLine();
                    licenceObj.PublicKey = AESEncrypt.Decrypt(keyStr);
                    licenceObj.Licence   = reader.ReadLine();
                }
            }

            string licenceStr = Base64Encrypt.Decrypt(licenceObj.Licence);
            string oStr       = RSAEncryptExt.DecryptString(licenceStr, licenceObj.PublicKey);

            string[] tempStrs = oStr.Split('&');
            licenceObj.MCode = tempStrs[0];

            string[] dateStrs = tempStrs[1].Split('|');
            licenceObj.AllData = dateStrs[0] == "true";
            licenceObj.Date    = Ext.UnixTimeToTime(dateStrs[1]);
            string[] userNumStrs = tempStrs[2].Split('|');
            licenceObj.AllUser = userNumStrs[0] == "true";
            licenceObj.UserNum = Convert.ToInt32(userNumStrs[1]);

            return(licenceObj);
        }
Example #2
0
        /// <summary>
        /// 创建文件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnCreate_Click(object sender, EventArgs e)
        {
            currentModel.Date    = txtDate.Value;
            currentModel.UserNum = txtUserNum.Value;
            currentModel.AllUser = chkAllUser.Checked;
            currentModel.AllData = chkAllData.Checked;
            string savePath = lblSavePath.Text;

            try
            {
                //生成RSA加密的密钥信息
                RSAEncryptExt.RSAKey keyPair = RSAEncryptExt.GetRASKey();
                currentModel.PublicKey  = keyPair.PublicKey;
                currentModel.PrivateKey = keyPair.PrivateKey;

                currentModel.Licence = licence.CreateLicence(currentModel);
                licence.CreateLicsenceFile(currentModel, savePath);

                LicenceDal dal = new LicenceDal();
                dal.AddLicence(currentModel);
            }
            catch (Exception)
            {
                throw;
            }

            UICommon.ShowSuccessMsg("生成完成。");
            System.Diagnostics.Process.Start(savePath);
        }
Example #3
0
        /// <summary>
        /// 生成认证码内容
        /// </summary>
        /// <returns></returns>
        public string CreateLicence(LicenceModel model)
        {
            string datePart    = model.AllData.ToString().ToLower() + "|" + Ext.GetUnixTime(model.Date);
            string userNumPart = model.AllUser.ToString().ToLower() + "|" + model.UserNum;
            string oStr        = model.MCode + "&" + datePart + "&" + userNumPart;
            string licenceStr  = RSAEncryptExt.EncryptString(oStr, model.PrivateKey);

            licenceStr = Base64Encrypt.Encrypt(licenceStr);
            return(licenceStr);
        }