コード例 #1
0
        public void Encrypt_NewOriginalString_Encrypted()
        {
            var actual = MD5Helper.Encrypt("abc123*");

            Assert.AreNotEqual("abc123*", actual);
            Assert.AreEqual(actual, MD5Helper.Encrypt("abc123*")); // Should generate the same value.
        }
コード例 #2
0
        public override void Start()
        {
            DisplayMessage(string.Format("value:{0}", value));
            string encodeValue = MD5Helper.Encrypt(value);

            DisplayMessage(string.Format("Encrypt: {0}", encodeValue));
        }
コード例 #3
0
        public async Task <IActionResult> Login(LoginModel loginModel)
        {
            ResultInfo resultInfo = new ResultInfo();
            //Cookies值
            var cookies = HttpContext.Request.Cookies["SetCookies"];

            var code = MD5Helper.Encrypt($"{loginModel.ValidateCode}{Configuration["JwtToken:secretCredentials"]}");

            if (cookies != code)
            {
                resultInfo.msg  = "验证码错误";
                resultInfo.code = 1;
                return(new JsonResult(resultInfo));
            }

            var result = await SignInManager.PasswordSignInAsync(loginModel.Email, loginModel.Password, true, true);

            if (result.Succeeded)
            {
                //
                return(Ok(new { msg = "登录成功" }));
            }
            else
            {
                return(Ok(new { msg = "登录失败" }));
            }
        }
コード例 #4
0
        public bool IsSame(string[] usedSerivce, string originalMd5, out string newMd5)
        {
            var orderedList = usedSerivce.OrderBy(m => { return(m.ToUpper()); });

            newMd5 = MD5Helper.Encrypt(string.Concat(orderedList));

            return(newMd5 == originalMd5);
        }
コード例 #5
0
    // InfoUser
    #region InfoUser

    public static void SendLoginOTP(string otp, string token)
    {
        string    dID  = UnityEngine.SystemInfo.deviceUniqueIdentifier;
        SLoginOTP data = new SLoginOTP
        {
            otp       = otp,
            token     = token,
            deviceID  = dID,
            signature = MD5Helper.Encrypt(string.Format("begin--{0}#{1}--end", otp, dID))
        };

        WebServiceController.Instance.SendRequest(WebServiceCode.Code.LoginOTP, data, HTTPMethods.Post);
    }
コード例 #6
0
    public static void SendSignInFacebookRequest(string accessToken)
    {
        string dID = UnityEngine.SystemInfo.deviceUniqueIdentifier;
        SSignInFacebookRequest data = new SSignInFacebookRequest
        {
            accessToken = accessToken,
            device      = VKCommon.DeviceId(),
            deviceID    = dID,
            signature   = MD5Helper.Encrypt(string.Format("begin--{0}#{1}--end", accessToken, dID))
        };

        WebServiceController.Instance.SendRequest(WebServiceCode.Code.SignInFacebook, data, HTTPMethods.Post);
    }
コード例 #7
0
    public static void SendSignInRequest(string username, string password)
    {
        string         dID  = UnityEngine.SystemInfo.deviceUniqueIdentifier;
        SSignInRequest data = new SSignInRequest
        {
            username  = username,
            password  = password,
            device    = VKCommon.DeviceId(),
            deviceID  = dID,
            signature = MD5Helper.Encrypt(string.Format("begin--{0}#{1}#{2}--end", username, password, dID))
        };

        WebServiceController.Instance.SendRequest(WebServiceCode.Code.SignIn, data, HTTPMethods.Post);
    }
コード例 #8
0
        /// <summary>
        /// 设置
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="prefix"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public static TokenModel <T> Set <T>(string prefix, T data) where T : TokenData
        {
            var sign  = string.Format("{0}:{1}", prefix, data.Username);
            var token = new TokenModel <T>()
            {
                UserId    = data.Id,
                Signature = MD5Helper.Encrypt(sign),
                Expiry    = DateTime.UtcNow.Add(Expiry),
                Data      = data
            };

            RedisHelper.Database.HashSet(CacheKey, token.Signature, token);
            return(token);
        }
コード例 #9
0
        /// <summary>
        /// 设置
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="data"></param>
        /// <param name="suffix"></param>
        /// <returns></returns>
        public static Token <T> Set <T>(T data, string suffix = "") where T : TokenData
        {
            var key   = string.Format("{0}-{1}", CacheKey, suffix);
            var sign  = string.Format("{0}-{1}", data.Username, data.Platform);
            var token = new Token <T>()
            {
                Id        = data.Id,
                Signature = MD5Helper.Encrypt(sign),
                Expiry    = DateTime.UtcNow.Add(Expiry),
                Data      = data
            };

            RedisHelper.Database.HashSet(key, token.Signature, token);
            return(token);
        }
コード例 #10
0
        public IActionResult GenerCode()
        {
            Bitmap bitmap = new Bitmap(6 * 15, 24);

            Graphics graphics = Graphics.FromImage(bitmap);

            graphics.Clear(Color.White);

            ValidateCode validateCode = new ValidateCode();

            Font font = new Font("微软雅黑", 12, FontStyle.Bold | FontStyle.Italic);

            Rectangle rectangle = new Rectangle(0, 0, bitmap.Width, bitmap.Height);

            LinearGradientBrush linearGradientBrush = new LinearGradientBrush(rectangle, Color.Red, Color.Blue, 30);

            //SolidBrush brush = new SolidBrush(Color.Red);

            string validatecode = validateCode.GeneralCode();


            graphics.DrawString(validatecode, font, linearGradientBrush, rectangle);

            Random random = new Random(unchecked ((int)DateTime.Now.Ticks));

            //画线
            for (int i = 0; i < 10; i++)
            {
                graphics.DrawLine(new Pen(Color.FromArgb(100, 0, 0, 255)), random.Next(bitmap.Width), random.Next(bitmap.Height), random.Next(bitmap.Width), random.Next(bitmap.Height));
            }

            MemoryStream memoryStream = new MemoryStream();

            bitmap.Save(memoryStream, ImageFormat.Jpeg);

            HttpContext.Response.Cookies.Append("SetCookies", MD5Helper.Encrypt($"{validateCode}{Configuration["JwtToken:secretCredentials"]}"), new CookieOptions {
                HttpOnly = true
            });

            return(File(memoryStream.ToArray(), "image/jpeg"));
        }
コード例 #11
0
        public static bool Md5CheckIsChange(string fileContent, string remoteContent)
        {
            var fileContentBuilder = new StringBuilder(fileContent);

            fileContentBuilder.Replace("\n", "")
            .Replace(" ", "")
            .Replace("\t", "")
            .Replace("\r", "")
            .Replace(" ", "");
            string newfileContentString = fileContentBuilder.ToString().ToUpperInvariant();

            var remoteContentBuilder = new StringBuilder(remoteContent);

            remoteContentBuilder.Replace("\n", "")
            .Replace(" ", "")
            .Replace("\t", "")
            .Replace("\r", "")
            .Replace(" ", "");

            string newRemoteContentString = remoteContentBuilder.ToString().ToUpperInvariant();

            return(MD5Helper.Encrypt(newfileContentString) != MD5Helper.Encrypt(newRemoteContentString));
        }
コード例 #12
0
        /// <summary>
        /// 短信发送
        /// </summary>
        /// <param name="phone"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        public string SendMessage(string phone, string smessage)
        {
            Random _random   = new Random();
            string _tradeno  = DateTime.Now.ToString("yyyyMMddHHmmssfff") + _random.Next(100, 1000);
            string _username = ConfigurationManager.AppSettings.Get("username");
            string _password = ConfigurationManager.AppSettings.Get("password");
            string _key      = ConfigurationManager.AppSettings.Get("key");
            string _url      = ConfigurationManager.AppSettings.Get("PostUrl");
            string _content  = smessage;
            string _phone    = phone;
            string json      = JsonConvert.SerializeObject(new
            {
                userPassword = _password,
                tradeNo      = _tradeno,
                phones       = _phone,
                etnumber     = "",
                userName     = _username,
                content      = _content,
            });
            string _sign = AES.Encrypt(json, _key, _key);

            _password = MD5Helper.Encrypt(_password);
            string parm_json = JsonConvert.SerializeObject(new
            {
                tradeNo      = _tradeno,
                userName     = _username,
                userPassword = _password,
                phones       = _phone,
                content      = _content,
                etnumber     = "",
                sign         = _sign
            });
            WebAction _web      = new WebAction();
            string    returnStr = HttpHelper.Post(_url, parm_json);

            return(GetResult(returnStr.Split(',')[1].Split(':')[1].Replace('"', ' ').Trim()));
        }
コード例 #13
0
        public JsonResult Add(UserEditModel model)
        {
            if (string.IsNullOrEmpty(model.Username))
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "Username is not allowed to be empty.",
                }));
            }

            if (string.IsNullOrEmpty(model.Password))
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "Password is not allowed to be empty.",
                }));
            }

            if (string.IsNullOrEmpty(model.Name))
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "Name is not allowed to be empty."
                }));
            }

            var mongo = new MongoHelper();

            var filter = Builders <BsonDocument> .Filter.Eq("Username", model.Username);

            var count = mongo.Count(Constant.UserCollectionName, filter);

            if (count > 0)
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "The username is already existed.",
                }));
            }

            var now = DateTime.Now;

            var salt = DateTime.Now.ToString("yyyyMMddHHmmss");

            var doc = new BsonDocument
            {
                ["ID"]         = ObjectId.GenerateNewId(),
                ["Username"]   = model.Username,
                ["Password"]   = MD5Helper.Encrypt(model.Password + salt),
                ["Name"]       = model.Name,
                ["Gender"]     = 0,
                ["Phone"]      = "",
                ["Email"]      = "",
                ["QQ"]         = "",
                ["CreateTime"] = now,
                ["UpdateTime"] = now,
                ["Salt"]       = salt,
                ["Status"]     = 0,
            };

            mongo.InsertOne(Constant.UserCollectionName, doc);

            return(Json(new
            {
                Code = 200,
                Msg = "Saved successfully!"
            }));
        }
コード例 #14
0
        public void IsEncrypted_EncryptedString_True()
        {
            var value = MD5Helper.Encrypt("abc123*");

            Assert.IsTrue(MD5Helper.IsEncrypted(value));
        }
コード例 #15
0
        public JsonResult Register(RegisterModel model)
        {
            if (model.Username == null || string.IsNullOrEmpty(model.Username))
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "Username is not allowed to be empty.",
                }));
            }

            if (model.Password == null || string.IsNullOrEmpty(model.Password))
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "Password is not allowed to be empty.",
                }));
            }

            if (model.ConfirmPassword == null || string.IsNullOrEmpty(model.ConfirmPassword))
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "Confirm password is not allowed to be empty.",
                }));
            }

            if (model.Password != model.ConfirmPassword)
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "Password and confirm password is not the same.",
                }));
            }

            if (model.Name == null || string.IsNullOrEmpty(model.Name))
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "Name is not allowed to be empty.",
                }));
            }

            var mongo = new MongoHelper();

            var filter = Builders <BsonDocument> .Filter.Eq("Username", model.Username);

            var count = mongo.Count(Constant.UserCollectionName, filter);

            if (count > 0)
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "The username is already existed.",
                }));
            }

            // 获取所有角色
            filter = Builders <BsonDocument> .Filter.Eq("Name", "User");

            var role = mongo.FindOne(Constant.RoleCollectionName, filter);

            if (role == null)
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "The system has not been initialized.",
                }));
            }

            // 添加用户
            var now = DateTime.Now;

            var salt = DateTime.Now.ToString("yyyyMMddHHmmss");

            var doc = new BsonDocument
            {
                ["ID"]         = ObjectId.GenerateNewId(),
                ["Username"]   = model.Username,
                ["Password"]   = MD5Helper.Encrypt(model.Password + salt),
                ["Name"]       = model.Name,
                ["RoleID"]     = role["ID"].ToString(),
                ["Gender"]     = 0,
                ["Phone"]      = "",
                ["Email"]      = "",
                ["QQ"]         = "",
                ["CreateTime"] = now,
                ["UpdateTime"] = now,
                ["Salt"]       = salt,
                ["Status"]     = 0,
            };

            mongo.InsertOne(Constant.UserCollectionName, doc);

            return(Json(new
            {
                Code = 200,
                Msg = "Register successfully!"
            }));
        }
コード例 #16
0
        public void Encrypt_AlreadyEncryptedString_DoNothing()
        {
            var actual = MD5Helper.Encrypt("abc123*");

            Assert.AreEqual(actual, MD5Helper.Encrypt(actual)); // Can encrypt again.
        }
コード例 #17
0
        public JsonResult Login(LoginModel model)
        {
            if (model.Username == null || string.IsNullOrEmpty(model.Username))
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "Username is not allowed to be empty.",
                }));
            }

            if (model.Password == null || string.IsNullOrEmpty(model.Password))
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "Password is not allowed to be empty.",
                }));
            }

            // 获取Salt
            var helper = new MongoHelper();
            var filter = Builders <BsonDocument> .Filter.Eq("Username", model.Username);

            var user = helper.FindOne(Constant.UserCollectionName, filter);

            if (user == null)
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "The username or password is wrong.",
                }));
            }

            var salt = user["Salt"].ToString();

            // 验证账号密码
            var password = MD5Helper.Encrypt(model.Password + salt);

            var filter1 = Builders <BsonDocument> .Filter.Eq("Password", password);

            filter = Builders <BsonDocument> .Filter.And(filter, filter1);

            user = helper.FindOne(Constant.UserCollectionName, filter);
            if (user == null)
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "The username or password is wrong.",
                }));
            }

            var id = user["ID"].ToString();

            // 将用户信息写入cookie
            var cookie = FormsAuthentication.GetAuthCookie(model.Username, false);
            var ticket = FormsAuthentication.Decrypt(cookie.Value);

            var newTicket = new FormsAuthenticationTicket(ticket.Version, ticket.Name, ticket.IssueDate, ticket.Expiration, ticket.IsPersistent, id); // 将用户ID写入ticket

            cookie.Value = FormsAuthentication.Encrypt(newTicket);

            HttpContext.Current.Response.Cookies.Add(cookie);

            return(Json(new
            {
                Code = 200,
                Msg = "Login successfully!"
            }));
        }
コード例 #18
0
        public JsonResult ResetPassword(ResetPasswordModel model)
        {
            ObjectId userID;

            if (!ObjectId.TryParse(model.UserID, out userID))
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "ID is not allowed."
                }));
            }

            if (model.NewPassword == null || model.NewPassword.Trim() == "")
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "New password is not allowed to be empty."
                }));
            }

            if (model.ConfirmPassword == null || model.ConfirmPassword.Trim() == "")
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "Confirm password is not allowed to be empty."
                }));
            }

            if (model.NewPassword != model.ConfirmPassword)
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "New password and confirm password is not the same."
                }));
            }

            // 判断用户是否存在
            var mongo = new MongoHelper();

            var filter = Builders <BsonDocument> .Filter.Eq("ID", userID);

            var doc = mongo.FindOne(Constant.UserCollectionName, filter);

            if (doc == null)
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "The user is not existed."
                }));
            }

            // 修改密码
            var salt     = DateTime.Now.ToString("yyyyMMddHHmmss");
            var password = MD5Helper.Encrypt(model.NewPassword + salt);

            var update1 = Builders <BsonDocument> .Update.Set("Password", password);

            var update2 = Builders <BsonDocument> .Update.Set("Salt", salt);

            var update = Builders <BsonDocument> .Update.Combine(update1, update2);

            mongo.UpdateOne(Constant.UserCollectionName, filter, update);

            return(Json(new
            {
                Code = 200,
                Msg = "Password reset successfully."
            }));
        }
コード例 #19
0
        public JsonResult ChangePassword(ChangePasswordModel model)
        {
            var user = UserHelper.GetCurrentUser();

            if (user == null)
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "The user is not existed."
                }));
            }

            // 验证密码是否为空
            if (model.OldPassword == null || model.OldPassword.Trim() == "")
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "Old password is not allowed to be empty."
                }));
            }

            if (model.NewPassword == null || model.NewPassword.Trim() == "")
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "New password is not allowed to be empty."
                }));
            }

            if (model.ConfirmPassword == null || model.ConfirmPassword.Trim() == "")
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "Confirm password is not allowed to be empty."
                }));
            }

            if (model.NewPassword != model.ConfirmPassword)
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "New password and confirm password is not the same."
                }));
            }

            // 验证旧密码
            var oldPassword = MD5Helper.Encrypt(model.OldPassword + user.Salt);

            if (oldPassword != user.Password)
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "Old password is not correct."
                }));
            }

            // 修改密码
            var salt     = DateTime.Now.ToString("yyyyMMddHHmmss");
            var password = MD5Helper.Encrypt(model.NewPassword + salt);

            var filter = Builders <BsonDocument> .Filter.Eq("ID", ObjectId.Parse(user.ID));

            var update1 = Builders <BsonDocument> .Update.Set("Password", password);

            var update2 = Builders <BsonDocument> .Update.Set("Salt", salt);

            var update = Builders <BsonDocument> .Update.Combine(update1, update2);

            var mongo = new MongoHelper();

            mongo.UpdateOne(Constant.UserCollectionName, filter, update);

            return(Json(new
            {
                Code = 200,
                Msg = "Password changed successfully!"
            }));
        }
コード例 #20
0
        public JsonResult Initialize()
        {
            // 判断权限是否开启
            var enableAuthority = ConfigurationManager.AppSettings["EnableAuthority"];

            if (enableAuthority != "true")
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "Authority is not enabled.",
                }));
            }

            // 判断是否已经初始化
            var mongo = new MongoHelper();

            var doc = mongo.FindAll(Constant.ConfigCollectionName).FirstOrDefault();

            if (doc != null && doc.Contains("Initialized") && doc["Initialized"].ToBoolean() == true)
            {
                return(Json(new
                {
                    Code = 300,
                    Msg = "System has already initialized."
                }));
            }

            var defaultRegisterRoleID = ObjectId.GenerateNewId();

            if (doc == null)
            {
                doc = new BsonDocument
                {
                    ["ID"]                  = ObjectId.GenerateNewId(),
                    ["Initialized"]         = true,
                    ["DefaultRegisterRole"] = defaultRegisterRoleID
                };
                mongo.InsertOne(Constant.ConfigCollectionName, doc);
            }
            else
            {
                var filter11 = Builders <BsonDocument> .Filter.Eq("_id", doc["_id"].AsObjectId);

                var update11 = Builders <BsonDocument> .Update.Set("Initialized", true);

                var update12 = Builders <BsonDocument> .Update.Set("DefaultRegisterRole", defaultRegisterRoleID);

                var update13 = Builders <BsonDocument> .Update.Combine(update11, update12);

                mongo.UpdateOne(Constant.ConfigCollectionName, filter11, update13);
            }

            // 初始化角色
            var now = DateTime.Now;

            var filter1 = Builders <BsonDocument> .Filter.Eq("Name", "Administrator");

            var filter2 = Builders <BsonDocument> .Filter.Eq("Name", "User");

            var filter3 = Builders <BsonDocument> .Filter.Eq("Name", "Guest");

            var filter = Builders <BsonDocument> .Filter.Or(filter1, filter2, filter3);

            mongo.DeleteMany(Constant.RoleCollectionName, filter);

            var adminRoleID = ObjectId.GenerateNewId(); // 管理员RoleID

            var role1 = new BsonDocument
            {
                ["ID"]          = adminRoleID,
                ["Name"]        = "Administrator",
                ["CreateTime"]  = now,
                ["UpdateTime"]  = now,
                ["Description"] = "Administrator",
                ["Status"]      = 0,
            };

            var role2 = new BsonDocument
            {
                ["ID"]          = defaultRegisterRoleID,
                ["Name"]        = "User",
                ["CreateTime"]  = now,
                ["UpdateTime"]  = now,
                ["Description"] = "Login User",
                ["Status"]      = 0,
            };

            var role3 = new BsonDocument
            {
                ["ID"]          = ObjectId.GenerateNewId(),
                ["Name"]        = "Guest",
                ["CreateTime"]  = now,
                ["UpdateTime"]  = now,
                ["Description"] = "No Login User",
                ["Status"]      = 0,
            };

            mongo.InsertMany(Constant.RoleCollectionName, new[] { role1, role2, role3 });

            // 初始化用户
            var password = "******";
            var salt     = DateTime.Now.ToString("yyyyMMddHHmmss");

            var user = new BsonDocument
            {
                ["ID"]         = ObjectId.GenerateNewId(),
                ["Username"]   = "******",
                ["Password"]   = MD5Helper.Encrypt(password + salt),
                ["Name"]       = "Administrator",
                ["RoleID"]     = adminRoleID.ToString(),
                ["Gender"]     = 0,
                ["Phone"]      = "",
                ["Email"]      = "",
                ["QQ"]         = "",
                ["CreateTime"] = now,
                ["UpdateTime"] = now,
                ["Salt"]       = salt,
                ["Status"]     = 0,
            };

            mongo.InsertOne(Constant.UserCollectionName, user);

            return(Json(new
            {
                Code = 200,
                Msg = "Initialize successfully!"
            }));
        }
コード例 #21
0
 public string Encrypt(string password)
 {
     return(MD5Helper.Encrypt("@#SSSS" + password));
 }