Пример #1
0
 /// <summary>
 /// Get second part of request
 /// If second part value is None, cipher key may be dismatch.
 /// </summary>
 /// <param name="request"></param>
 /// <param name="c_dyn"></param>
 /// <returns></returns>
 public static Maybe <Request_Head> GetHead(this Request request, string c_dyn = Constants.C_Dyn)
 {
     // string ->(Decrypt) -> string ->(Dejson) -> Head
     try
     {
         return(Cipher_Aes.DecryptFromBase64(request.Head, ConfigurationManager.AppSettings[c_dyn]).ToMaybe()
                //.Do(json => Util.Log_Info("request head --->", Location.Internal, json, "print request head\n"))
                .Select <Request_Head>(json => json.ToObject <Request_Head>()));
     }
     catch (Exception e)
     {
         return(None <Request_Head> .Default);
     }
 }
Пример #2
0
        public static T GetBody <T>(this Request request, string c_dyn = Constants.C_Dyn)
        {
            try
            {
                var request_Body = Cipher_Aes.DecryptFromBase64(request.Body, ConfigurationManager.AppSettings[c_dyn]);

                return(request_Body.ToObject <T>());
            }
            catch (Exception e)
            {
                //Util.Log_Info("request body handling", Location.Internal, e.Message, "failed to parse the request body\n\n");
                return(default(T));
            }
        }
Пример #3
0
        public void Test_Cipher_Aes()
        {
            var    list  = new List <string>();
            var    list1 = list.Where(l => l.Equals("r")).ToList();
            string str23 = string.Format("{0}_{1}_{2}", 1, 2, 4);
            var    mail  = new MailBinding()
            {
                uid = "30533", u_name = "newqqqqq", email = "*****@*****.**"
            };
            var str = "{\"Org_Android_Version\":\"3.0.1\",\"cl_cookieId\":\"867922028675582\",\"cl_screenSize\":\"KIW - TL00H\",\"cl_token\":\"h4DFuGvB2pFCkKs1rqKbU1MUG5pwfMcu9G3QLrWuKSDmX9mpYNAQNGz2mps1nSAELM1sgpWd5k18KKDG3KzRmSnII1wDtU1G4arzpOceuUA\u003d\"}";
            //var json = "MLSRugdZezCbdpK8ZdjPQyu+5mBikdEVEaRvNsLcsJbiZKeSf6hGE0Bexwc/JBoPkFB8XAFLOpod7DvyEr/geVYeqv+5mnQh8KQ1yt+lS4Tj6rU3wJW6/TioCld1IRGM3A/uIrPpQB+WsX+SlSaOGwY1Qxtkfiz6GmwK2mQPf+OS6+K6i+HulFUV2FqIsj8Z1FQ +WjpkseEeurxS8/NHAkyiNivapFyOk+XsenR5yxpSzqcKmgzEYmjrqTHcB7asBDdk33U3dtvq7VmlUxmyv6xwxz5U2k2ueD2ok4Rz8YE=";
            var enstr = Cipher_Aes.DecryptFromBase64(raw_str, cipher_key1);
            var str1  = Cipher_Aes.EncryptToBase64(str, cipher_key);

            Assert.Equal("txttxt", str);
        }
Пример #4
0
        /// <summary>
        /// Verify if the token is valid
        /// </summary>
        /// <param name="token"></param>
        /// <param name="benchmark">value that used to execute comparison</param>
        /// <returns>token is valid, return true, or else return false</returns>
        public static bool Verify(string token, string benchmark, bool login = false)
        {
            if (string.IsNullOrEmpty(benchmark))
            {
                return(false);
            }
            try
            {
                var de        = Cipher_Aes.DecryptFromBase64(token, ConfigurationManager.AppSettings[Constants.S_Tok]);
                var fields_Mb = de
                                .ToMaybe().Select(json => json.ToObject <IDictionary <string, string> >().ToMaybe());

                if (fields_Mb.HasValue)
                {
                    string cookie = null;

                    //if(login)
                    //{
                    //    string uid = null;
                    //    if(fields_Mb.Value.TryGetValue(nameof(Uid), out uid))
                    //    {
                    //        return true;
                    //        //return !string.IsNullOrEmpty(uid);
                    //    }

                    //    return false;
                    //}

                    if (fields_Mb.Value.TryGetValue(nameof(Cookie), out cookie))
                    {
                        return(benchmark.Equals(cookie));
                    }
                }
                return(false);
            }
            catch (Exception e)
            {
                return(false);
            }
        }
Пример #5
0
 public static bool VerifyBlack(string token)
 {
     try
     {
         var de        = Cipher_Aes.DecryptFromBase64(token, ConfigurationManager.AppSettings[Constants.S_Tok]);
         var fields_Mb = de
                         .ToMaybe().Select(json => json.ToObject <IDictionary <string, string> >().ToMaybe());
         if (fields_Mb.HasValue)
         {
             string ustatus = "";
             if (fields_Mb.Value.TryGetValue(nameof(Ustatus), out ustatus))
             {
                 return(ustatus == "5");
             }
         }
         return(false);
     }
     catch (Exception e)
     {
         return(false);
     }
 }
Пример #6
0
 /// <summary>
 /// Decrypte input string with client key
 /// </summary>
 /// <param name="input"></param>
 /// <param name="c_dyn_key"></param>
 /// <returns></returns>
 public static string Decrypte(this string input, string c_dyn = Constants.C_Dyn)
 {
     return(Cipher_Aes.DecryptFromBase64(input, ConfigurationManager.AppSettings[c_dyn]));
 }
Пример #7
0
 /// <summary>
 /// ToAesDecryptCodeKey[base16]
 /// </summary>
 /// <param name="orgcode"></param>
 /// <returns></returns>
 public static string ToAesDecrypt16CodeKey(this string orgcode)
 {
     return(Encoding.UTF8.GetString(Cipher_Aes.DecryptToBytes(QZ.Instrument.Utility.Util.DecodeHexEncodingString(orgcode), ConfigurationManager.AppSettings["code_key"].ToString())));
 }
Пример #8
0
 public static Maybe <T> Body_Get <T>(this Request request, string c_dyn = Constants.C_Dyn) =>
 Exception_Wrap <T>(() => Cipher_Aes.DecryptFromBase64(request.Body, ConfigurationManager.AppSettings[c_dyn]).ToObject <T>());
Пример #9
0
 /// <summary>
 /// AES encrypte with a specified key
 /// </summary>
 /// <param name="input"></param>
 /// <param name="key"></param>
 /// <returns></returns>
 public static string ToEncryption(this string input, string key = null)
 {
     return(Cipher_Aes.EncryptToBase64(input, key ?? Global.Instance.C_Dyn_Key));
 }
Пример #10
0
        public static Resp_Company_Detail To_Company_Detail(this Tuple <OrgCompanyDtlInfo, OrgCompanyListInfo> t)
        {
            var c = new Resp_Company_Detail();

            if (t.Item1 != null)
            {
                var flag = t.Item1.od_CreateTime.Year != 1900;
                c.oc_code_s       = Private_Util.To_Code_Display(t.Item1.od_oc_code) ?? string.Empty;
                c.oc_code         = t.Item1.od_oc_code ?? string.Empty;
                c.oc_number       = Private_Util.To_Number_Display(t.Item1.oc_number) ?? string.Empty;
                c.oc_name         = t.Item1.oc_name ?? string.Empty;
                c.oc_addr         = t.Item1.oc_address ?? string.Empty;
                c.oc_art_person   = t.Item1.od_faRen ?? string.Empty;
                c.oc_business     = t.Item1.od_bussinessDes ?? string.Empty;
                c.oc_reg_capital  = t.Item1.od_regMoney ?? string.Empty;
                c.oc_paid_capital = t.Item1.od_factMoney ?? string.Empty;
                c.oc_reg_type     = t.Item1.od_regType ?? string.Empty;
                c.oc_reg_date     = t.Item1.od_regDate ?? string.Empty;
                c.oc_operate_time = flag ? (string.IsNullOrEmpty(t.Item1.od_bussinessS) ? "****" : t.Item1.od_bussinessS)
                                    + " 至 "
                                    + (string.IsNullOrEmpty(t.Item1.od_bussinessE) ? "永续经营" : t.Item1.od_bussinessE) : "";
                c.oc_check_date    = t.Item1.od_chkDate;
                c.oc_annual_review = t.Item1.od_yearChk;
                // generating time of this record
                c.oc_create_time = t.Item1.od_CreateTime.ToString("yyyy-MM-dd HH:mm");
                c.oc_ext         = t.Item1.od_ext ?? string.Empty;
                c.oc_status      = Private_Util.Operation_Status_Get(c.oc_ext);
            }
            if (t.Item2 != null)
            {
                c.oc_detail_weburi = $"{ConfigurationManager.AppSettings["oc_detail_weburi"]}/?a=detail&c={HttpUtility.UrlEncode(Cipher_Aes.EncryptToBase64(t.Item2.oc_code, ConfigurationManager.AppSettings["code_key"]), Encoding.UTF8)}";
                if (string.IsNullOrEmpty(c.oc_code_s))
                {
                    c.oc_code_s = Private_Util.To_Code_Display(t.Item2.oc_code);
                    c.oc_code   = t.Item2.oc_code;
                }
                c.oc_area      = t.Item2.oc_area ?? string.Empty;
                c.oc_area_name = t.Item2.oc_areaName ?? string.Empty;
                if (string.IsNullOrEmpty(c.oc_name))
                {
                    c.oc_name = t.Item2.oc_name;
                }

                c.oc_type     = t.Item2.oc_companytype;
                c.oc_reg_name = t.Item2.oc_regOrgName;
                c.oc_number   = t.Item2.oc_number;
                if (string.IsNullOrEmpty(c.oc_number))
                {
                    c.oc_number = Private_Util.To_Number_Display(t.Item2.oc_number);
                }
                c.oc_creditcode = t.Item2.oc_creditcode;
                if (string.IsNullOrEmpty(c.oc_addr))
                {
                    c.oc_addr = t.Item2.oc_address;
                }
                c.oc_valid_period = t.Item2.oc_issuetime.ToString("yyyy-MM-dd") + " 至 " + t.Item2.oc_invalidtime.ToString("yyyy-MM-dd"); // 有效期
                if (string.IsNullOrEmpty(c.oc_create_time))
                {
                    c.oc_create_time = t.Item2.oc_createTime.ToString("yyyy-MM-dd HH:mm");
                }
            }
            return(c);
        }
Пример #11
0
 /// <summary>
 /// Induce all fields to generate a token
 /// </summary>
 /// <returns></returns>
 public string Induce()
 {
     return(Cipher_Aes.EncryptToBase64(_fields.ToJson(), ConfigurationManager.AppSettings[Constants.S_Tok]));
 }