public ActionResult Member_Reset(int id)
        {
            var query = entity.account_member.FirstOrDefault(p => p.id == id);

            query.password = DESTool.Encrypt("1");
            return(Json(entity.SaveChanges() > 0, JsonRequestBehavior.AllowGet));
        }
Beispiel #2
0
        private void button_Click(object sender, RoutedEventArgs e)
        {
            //以下是测试十六进制明文的加解密,用来验证加密解密是否正确
            //textBox1.Text = DESTool.getInstace().DESencrypt("0123456789ABCDEF", "133457799BBCDFF1");
            //textBox2.Text = DESTool.getInstace().DESdecrypt("a28b7a0e74430f5e", "133457799BBCDFF1");
            Random r   = new Random();
            string key = "";

            for (int index = 0; index < 16; index++)
            {
                int number = r.Next(0, 16);
                key += number.ToString("X");
            }
            textBox3.Text = key;

            if (des)
            {
                des = false;
                string text = textBox1.Text.ToString();
                textBox1.Text     = "";
                length            = text.Length;
                textBox2.Text     = DESTool.getInstace().DESencrypt(text, textBox3.Text.ToString().Trim());
                button.IsEnabled  = false;
                button2.IsEnabled = true;
            }
        }
Beispiel #3
0
        public ActionResult Register(string phone, string password, string code)
        {
            account_member member = entity.account_member.FirstOrDefault(p => p.phone == phone);

            if (member == null)
            {
                SMSTool tool       = new SMSTool();
                bool    codeResult = tool.CheckCode(phone, code);
                if (codeResult == true)
                {
                    account_member new_member = new account_member()
                    {
                        enable       = true,
                        password     = DESTool.Encrypt(password),
                        phone        = phone,
                        sys_datetime = DateTime.Now,
                    };
                    entity.account_member.Add(new_member);
                    if (entity.SaveChanges() > 0)
                    {
                        HttpContext.Session["tpmember"] = new_member;
                        MessageTool.SendMessage(new_member.id, "系统通知", "恭喜您注册成功!");
                        return(Json(true, JsonRequestBehavior.AllowGet));
                    }
                    return(Json("用户创建失败", JsonRequestBehavior.AllowGet));
                }
                return(Json("验证码无效"));
            }
            return(Json("账号已被注册", JsonRequestBehavior.AllowGet));
        }
Beispiel #4
0
        private void tab1Init()
        {
            BotQQ = CQ.Api.GetLoginQQ();

            bindingSource_StudentDB.DataSource = EasOP.GetAll(Convert.ToString(BotQQ.Id));
            dataGridView_StuList.DataSource    = bindingSource_StudentDB;
            stuDataGridView.DataSource         = bindingSource_StudentDB;

            tb_QQ.Text    = ini.Read(AppDirectory + @"\配置.ini", "主人信息", "QQ", "");
            tb_StuID.Text = ini.Read(AppDirectory + @"\配置.ini", "主人信息", "学号", "");
            if (ini.Read(AppDirectory + @"\配置.ini", "主人信息", "教务系统密码", "") != "")
            {
                tb_jwPw.Text = DESTool.Decrypt(ini.Read(AppDirectory + @"\配置.ini", "主人信息", "教务系统密码", ""), "jw*1");
            }

            if (ini.Read(AppDirectory + @"\配置.ini", "成绩提醒", "启动", "") == "真")
            {
                label_sr1.Text = "本人新出成绩提醒:已开启";
            }
            else
            {
                label_sr1.Text = "本人新出成绩提醒:已关闭";
            }

            tb_ReminderTime.Text = ini.Read(AppDirectory + @"\配置.ini", "成绩提醒", "间隔", "");
        }
Beispiel #5
0
        public ActionResult Password_Add_Edit(string password)
        {
            int            id     = MemberManager.GetMember().id;
            account_member member = entity.account_member.FirstOrDefault(p => p.id == id);

            member.password = DESTool.Encrypt(password);
            return(Json(entity.SaveChanges() > 0, JsonRequestBehavior.AllowGet));
        }
Beispiel #6
0
 private void button2_Click(object sender, RoutedEventArgs e)
 {
     if (des == false)
     {
         des = true;
         string text = textBox2.Text.ToString();
         textBox2.Text     = "";
         textBox1.Text     = DESTool.getInstace().DESdecrypt(text, textBox3.Text.ToString().Trim()).Substring(0, length);
         button.IsEnabled  = true;
         button2.IsEnabled = false;
     }
 }
        /// <summary>
        /// 更新指定学生的成绩信息 失败将抛出异常
        /// </summary>
        /// <param name="StuQQ">学生QQ</param>
        /// <returns>新成绩列表</returns>
        public static List <Score> UpdateScore(string StuQQ)
        {
            QQ     BotQQ        = CQ.Api.GetLoginQQ();
            string AppDirectory = CQ.Api.AppDirectory;
            string StuID;
            string Pw;

            if (ini.Read(AppDirectory + @"\配置.ini", "主人信息", "QQ", "") == StuQQ)  //是主人
            {
                StuID = ini.Read(AppDirectory + @"\配置.ini", "主人信息", "学号", "");
                Pw    = DESTool.Decrypt(ini.Read(AppDirectory + @"\配置.ini", "主人信息", "教务系统密码", ""), "jw*1");
            }
            else
            {
                StuID = ini.Read(AppDirectory + @"\配置.ini", StuQQ, "学号", "");
                Pw    = DESTool.Decrypt(ini.Read(AppDirectory + @"\配置.ini", StuQQ, "密码", ""), "jw*1");
            }

            if (StuID == "" || Pw == "")
            {
                throw new UpdataErrorException("当前QQ未绑定教务系统账户。");
            }
            EasLogin jwxt = new EasLogin(Convert.ToString(BotQQ.Id), StuQQ, StuID, Pw, 3);

            try
            {
                if (jwxt.TryLogin() == true)
                {
                    EasGetNewScore jwscore = new EasGetNewScore();
                    return(jwscore.GetNewScore(jwxt));
                }
                else
                {
                    return(new List <Score>());   //空列表
                }
            }
            catch (Exception ex)
            {
                if (ex.Message == "用户名/密码错误")
                {
                    throw new UpdataErrorException("用户名或密码错误。");
                }
                else if (ex.Message == "验证码错误")
                {
                    throw new UpdataErrorException("验证码错误达到上限,请稍后再试。");
                }
                else
                {
                    CQ.Log.Error("发生错误", "错误信息:" + ex.GetType().ToString() + " " + ex.Message + "\n" + ex.StackTrace);
                    throw new UpdataErrorException("发生未知错误,请联系机器人主人。");
                }
            }
        }
        /// <summary>
        /// 数据加密
        /// </summary>
        /// <param name="dataKey">加密key</param>
        /// <param name="data">body域</param>
        /// <returns></returns>
        private static SecretMetaData DataEcryption(string dataKey, string data)
        {
            long timeStamp = CommonTools.GetTimeStamp();
            long iv        = timeStamp + 1;
            //1.加密
            string dataChiperText = DESTool.Encryption(dataKey, Encoding.UTF8.GetBytes(iv.ToString().Substring(2, 8)), Encoding.UTF8.GetBytes(data));

            //3.返回数据
            return(new SecretMetaData {
                createTime = timeStamp, msg = dataChiperText
            });
        }
        public ActionResult Login(string phone, string password)
        {
            account_admin admin = entity.account_admin.FirstOrDefault(p => p.phone == phone);

            if (admin != null && DESTool.Encrypt(password) == admin.password)
            {
                if (admin.enable == true)
                {
                    HttpContext.Session["tpadmin"] = admin;
                    return(Json(true, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    return(Json("账号已被停用", JsonRequestBehavior.AllowGet));
                }
            }
            return(Json("账号或密码错误", JsonRequestBehavior.AllowGet));
        }
        void IJob.Execute()
        {
            BotQQ = CQ.Api.GetLoginQQ();

            string AppDirectory = CQ.Api.AppDirectory;
            string QQ           = ini.Read(AppDirectory + @"\配置.ini", "主人信息", "QQ", "");
            string StuID        = ini.Read(AppDirectory + @"\配置.ini", "主人信息", "学号", "");
            string Pw           = ini.Read(AppDirectory + @"\配置.ini", "主人信息", "教务系统密码", "");

            if (QQ == "" || StuID == "" || Pw == "")
            {
                CQ.Log.Warning("成绩提醒模块", "本人部分信息为空,提醒任务已停止。");
                JobManager.Stop();
                JobManager.RemoveAllJobs();
            }

            CQ.Log.Debug("成绩提醒模块", "检测运行中……");

            Pw = DESTool.Decrypt(Pw, "jw*1");
            EasLogin jwxt = new EasLogin(Convert.ToString(BotQQ.Id), QQ, StuID, Pw, 3);

            try
            {
                if (jwxt.TryLogin() == true)
                {
                    CQ.Log.Debug("成绩提醒模块", "登录成功");
                    EasGetNewScore jwscore = new EasGetNewScore();
                    var            sList   = jwscore.GetNewScore(jwxt);
                    if (sList.Count != 0)
                    {
                        foreach (var s in sList)
                        {
                            CQ.Api.SendPrivateMessage(Convert.ToInt64(QQ), "【新出成绩】\n课程:", s.LessonName, "\n成绩:", s.Mark);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                CQ.Log.Warning("成绩提醒模块", "本次检测发生了错误,任务已停止。\n错误信息:" + ex.Message);
                JobManager.Stop();
                JobManager.RemoveAllJobs();
            }
        }
Beispiel #11
0
 public static void FetchConnString()
 {
     ConnectionString = ConfigurationManager.AppSettings["DSN"];
     ConnectionString = DESTool.Decrypt(ConnectionString, ConfigurationManager.AppSettings["cKey"]);
 }
Beispiel #12
0
 private void tb_jwPw_TextChanged(object sender, EventArgs e)
 {
     ini.Write(AppDirectory + @"\配置.ini", "主人信息", "教务系统密码", DESTool.Encrypt(tb_jwPw.Text, "jw*1"));
 }
Beispiel #13
0
        public override int HandleImpl()
        {
            string msg      = message.Replace(" ", ""); //去除空格
            var    StuID    = textOp.GetMiddleText(msg, "绑定教务系统", "|");
            var    Password = textOp.GetRightText(msg, "|");

            if (StuID == "" || Password == "")
            {
                CQ.Api.SendPrivateMessage(Convert.ToInt64(fromQQ), "命令格式错误,请检查输入信息。\n命令格式:绑定教务系统 学号|密码");
                return(1);
            }
            EasLogin jwxt         = new EasLogin(botQQ, fromQQ, StuID, Password, 3);
            string   AppDirectory = CQ.Api.AppDirectory;

            for (int i = 0; i <= jwxt.TryNum; i++)
            {
                try
                {
                    if (EasOP.StuExist(StuID) == false)
                    {
                        jwxt.LoginSys();
                        CQ.Api.SendPrivateMessage(Convert.ToInt64(fromQQ), "【登录成功】\n", jwxt.College, " ", jwxt.StuName);
                        ini.Write(AppDirectory + @"\配置.ini", fromQQ, "学号", StuID);
                        ini.Write(AppDirectory + @"\配置.ini", fromQQ, "密码", DESTool.Encrypt(Password, "jw*1"));

                        EasGetCourse jwcourse = new EasGetCourse();
                        jwcourse.GetCourse(jwxt);
                        EasGetScore jwScore = new EasGetScore();
                        jwScore.GetScore(jwxt);

                        break;
                    }
                    else
                    {
                        CQ.Api.SendPrivateMessage(Convert.ToInt64(fromQQ), "【绑定失败】\n当前学号已被QQ:", EasOP.GetStuQQ(StuID), "绑定,不能再次绑定。");
                    }
                }
                catch (Exception ex)
                {
                    if (ex.Message == "密码错误")
                    {
                        CQ.Api.SendPrivateMessage(Convert.ToInt64(fromQQ), "【用户名或密码错误】\n请确认无误后重新发送命令再试。");
                    }
                    else if (ex.Message == "验证码错误")
                    {
                        if (i == jwxt.TryNum)
                        {
                            CQ.Api.SendPrivateMessage(Convert.ToInt64(fromQQ), "验证码错误已达最大尝试上限,如需继续登录可重新发送命令再试。");
                        }
                        else
                        {
                            CQ.Api.SendPrivateMessage(Convert.ToInt64(fromQQ), "【验证码错误】\n正在重试。");
                            System.Threading.Thread.Sleep(1000);    //休眠1s后重试请求
                            continue;
                        }
                    }
                    else
                    {
                        CQ.Api.SendPrivateMessage(Convert.ToInt64(fromQQ), "发生未知错误,请联系机器人主人。");
                        CQ.Log.Error("发生未知错误", ex.ToString());
                        break;
                    }
                }
            }

            return(0);
        }