Example #1
0
        /// <summary>
        /// 验证签名
        /// </summary>
        /// <param name="requestSign">请求签名</param>
        /// <param name="signPlain">需要加密字符串</param>
        /// <param name="time">时间戳</param>
        /// <param name="secretKey">加密密钥</param>
        /// <returns>签名是否合法</returns>
        /// 时间:2016/9/22 10:18
        /// 备注:
        public static bool ValidSign(string requestSign, string signPlain, string time, string secretKey)
        {
            if (string.IsNullOrEmpty(time) || string.IsNullOrEmpty(requestSign) || string.IsNullOrEmpty(signPlain))
            {
                return(false);
            }

            long     _requestTime = 0;
            DateTime _curDateTime = DateTime.Now;

            if (long.TryParse(time, out _requestTime))
            {
                string _maxDateTime = _curDateTime.AddMinutes(5).ToString("yyyyMMddHHmmss");
                string _minDateTime = _curDateTime.AddMinutes(-5).ToString("yyyyMMddHHmmss");

                if (!(long.Parse(_maxDateTime) >= _requestTime && long.Parse(_minDateTime) <= _requestTime))
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }

            string _serverSign = SHA256Encryptor.Encrypt(secretKey, signPlain);

            return(string.Compare(_serverSign, requestSign, true) == 0);
        }
        public AccountController()
        {
            var encryptor = new SHA256Encryptor();

            this.userService = new UserService(encryptor);
        }