Exemplo n.º 1
0
        /// <summary>
        /// 生成并返回jwt token
        /// </summary>
        /// <returns></returns>
        public string CreateToken()
        {
            string header    = Base64Util.Base64Encode(JsonUtil.SerializeObject(Header));
            string payload   = Base64Util.Base64Encode(JsonUtil.SerializeObject(Payload));
            string signature = SHA256.Encrypt(SHA256.Encrypt(header + "." + payload) + secret);

            return(header + "." + payload + "." + signature);
        }
Exemplo n.º 2
0
        public void SHA256EncryptTest()
        {
            string input  = "Hello World";
            string output = BitConverter.ToString(SHA256.Encrypt(input.GetBytes()));
            string value  = "a5-91-a6-d4-0b-f4-20-40-4a-01-17-33-cf-b7-b1-90-d6-2c-65-bf-0b-cd-a3-2b-57-b2-77-d9-ad-9f-14-6e";

            Assert.AreEqual(output, value, true);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 加密密码
        /// </summary>
        /// <param name="rawPassword"></param>
        /// <returns></returns>
        public static string EncryptPassword(string rawPassword)
        {
            if (rawPassword.IsNullOrWhiteSpace())
            {
                return(String.Empty);
            }
            string passwordSalt = Guid.NewGuid().ToString("N");
            string data         = SHA256.Encrypt(rawPassword, passwordSalt);

            return($"{passwordSalt}|{data}");
        }
Exemplo n.º 4
0
        public static string GeneratePassword(string rawPassword)
        {
            if (rawPassword.IsNullOrWhiteSpace())
            {
                return(String.Empty);
            }
            string passwordSalt = Guid.NewGuid().ToString("N");
            string data         = SHA256.Encrypt(rawPassword, passwordSalt);

            return("{0}|{1}".FormatWith(passwordSalt, data));
        }
Exemplo n.º 5
0
 /// <summary>
 /// 验证token是否合法
 /// </summary>
 /// <param name="jwtToken"></param>
 /// <returns></returns>
 private static bool VerifyToken(string jwtToken)
 {
     string[] ts = jwtToken.Split('.');
     if (ts.Length == 3)
     {
         if (ts[2] == SHA256.Encrypt(SHA256.Encrypt(ts[0] + "." + ts[1]) + secret))
         {
             return(true);
         }
     }
     return(false);
 }
Exemplo n.º 6
0
        private static UserInfo CheckPassword(UserInfo userInfo, string password)
        {
            string[] splitData = userInfo.Password.Split('|');
            if (splitData.Length != 2)
            {
                throw new InvalidOperationException("Password and PasswordSalt could not be read from module data");
            }

            string userPasswordSalt = splitData[0];
            string userPassword     = splitData[1];

            return(userPassword == SHA256.Encrypt(password, userPasswordSalt) ? userInfo : null);
        }
Exemplo n.º 7
0
        public void SHA1Test()
        {
            string str     = "Hello world!";
            string encrypt = SHA1.Encrypt(str);

            Console.WriteLine(encrypt);
            encrypt = SHA256.Encrypt(str);
            Console.WriteLine(encrypt);
            encrypt = SHA384.Encrypt(str);
            Console.WriteLine(encrypt);
            encrypt = SHA512.Encrypt(str);
            Console.WriteLine(encrypt);
            encrypt = MD5.Encrypt(str);
            Console.WriteLine(encrypt);
        }
Exemplo n.º 8
0
        /// <summary>
        /// VerifyPassword
        /// </summary>
        /// <param name="userInfo"></param>
        /// <param name="password"></param>
        /// <returns></returns>
        public static Boolean VerifyPassword(this UserInfo userInfo, string password)
        {
            if (userInfo == null || password.IsNullOrWhiteSpace())
            {
                return(false);
            }
            if (userInfo.Password.IsNullOrWhiteSpace())
            {
                return(false);
            }

            string[] splitData = userInfo.Password.Split('|');
            if (splitData.Length != 2)
            {
                throw new InvalidOperationException("Password and PasswordSalt could not be read from module data");
            }

            string userPasswordSalt = splitData[0];
            string userPassword     = splitData[1];

            return(userPassword == SHA256.Encrypt(password, userPasswordSalt) ? true : false);
        }