Exemple #1
0
        /// <summary>
        /// 获取加密TOKEN
        /// </summary>
        /// <returns></returns>
        public string ToCipherToken()
        {
            Encoding  utf8      = Encoding.UTF8;
            TimeStamp stamp     = this.Expire_Time;
            string    plainText = string.Format("{0}|{1}|{2}|{3}|{4}", (int)stamp.Seconds, this.UserId, this.UserCode,
                                                this.AppId.ToString().PadLeft(5, '0'), this.Verifiable ? 1 : 0);
            var des = new DesEncodeDecode(SECRET, System.Security.Cryptography.CipherMode.ECB, System.Security.Cryptography.PaddingMode.PKCS7, true, utf8);

            byte[] input  = utf8.GetBytes(plainText);
            byte[] output = des.DesEncrypt(input);
            string base58 = Base58.Encode(output);

            return(base58);
        }
Exemple #2
0
        public override ThirdpartyUserToken GetUserToken(HttpContext ctx)
        {
            string          cipher_openid = ctx.Request.Query["openid"];
            string          cipher_token  = ctx.Request.Query["token"];
            DesEncodeDecode des           = new DesEncodeDecode(this.Config.Secret);

            byte[] bytes_openid    = des.DesEncrypt(Base58.Decode(cipher_openid));
            byte[] bytes_token     = des.DesEncrypt(Base58.Decode(cipher_token));
            ThirdpartyUserToken ut = new ThirdpartyUserToken
            {
                AccessToken = Encoding.UTF8.GetString(bytes_token),
                OpenID      = Encoding.UTF8.GetString(bytes_openid)
            };

            return(ut);
        }
        /// <summary>
        /// Des解密
        /// </summary>
        /// <param name="cipherText"></param>
        /// <param name="key"></param>
        /// <param name="plainText"></param>
        /// <returns></returns>
        public static bool DesDecrypt(string cipherText, string key, out string plainText)
        {
            Encoding utf8 = Encoding.UTF8;

            try
            {
                DesEncodeDecode des = new DesEncodeDecode(key,
                                                          System.Security.Cryptography.CipherMode.ECB,
                                                          System.Security.Cryptography.PaddingMode.PKCS7,
                                                          true, utf8);
                byte[] input  = Base58.Decode(cipherText);
                byte[] output = des.DesDecrypt(input);
                plainText = utf8.GetString(output);
                return(true);
            }
            catch (Exception ex)
            {
                plainText = ex.Message;
                return(false);
            }
        }
Exemple #4
0
        /// <summary>
        /// 从TOKEN中解密数据
        /// </summary>
        /// <param name="cipherToken"></param>
        /// <returns></returns>
        public static UserToken FromCipherToken(string cipherToken)
        {
            byte[] input = Base58.Decode(cipherToken);
            var    des   = new DesEncodeDecode(SECRET, System.Security.Cryptography.CipherMode.ECB, System.Security.Cryptography.PaddingMode.PKCS7, true);

            byte[] output    = des.DesDecrypt(input);
            string plainText = Encoding.UTF8.GetString(output);

            string[] array = plainText.Split('|');
            int      seconds;
            int      user_id, appid;

            if (!int.TryParse(array[0], out seconds))
            {
                return(null);
            }
            TimeStamp timestamp = seconds;

            if (!int.TryParse(array[1], out user_id))
            {
                return(null);
            }
            if (!int.TryParse(array[3], out appid))
            {
                return(null);
            }
            UserToken userToken = new UserToken
            {
                Expire_Time = timestamp.LocalDate,
                UserCode    = array[2],
                UserId      = user_id,
                AppId       = appid,
                Verifiable  = (array.Length > 3) ? (array[3] == "1") : false
            };

            return(userToken);
        }
Exemple #5
0
        public static bool DesEncrypt(string plainText, string key, out string cipherText)
        {
            Encoding utf8 = Encoding.UTF8;

            try
            {
                DesEncodeDecode des = new DesEncodeDecode(key,
                                                          System.Security.Cryptography.CipherMode.ECB,
                                                          System.Security.Cryptography.PaddingMode.PKCS7,
                                                          true, utf8);
                byte[] input = utf8.GetBytes(plainText);
                //var base64 = des.DesEncrypt(plainText);
                //var bytes = Convert.FromBase64String(base64);
                //cipherText = bytes.Byte2HexString();
                byte[] output = des.DesEncrypt(input);
                cipherText = Base58.Encode(output);
                return(true);
            }
            catch (Exception ex)
            {
                cipherText = ex.Message;
                return(false);
            }
        }