Exemplo n.º 1
0
        /// <summary>
        /// 功能描述 解析数据推送请求,生成code>BodyObj</code>消息对象 </summary>
        /// <param name="body"> 数据推送请求body部分 </param>
        /// <param name="encrypted"> 表征是否为加密消息 </param>
        /// <returns>  生成的<code>BodyObj</code>消息对象 </returns>
        public static BodyObj resolveBody(String body, bool encrypted)
        {
            if (string.IsNullOrEmpty(body))
            {
                body = "";
            }
            JObject jsonMsg = JObject.Parse(body);
            var     obj     = new BodyObj();

            obj.nonce        = jsonMsg.GetValue("nonce").ToString();
            obj.msgSignature = jsonMsg.GetValue("msg_signature").ToString();
            if (encrypted)
            {
                if (jsonMsg.GetValue("enc_msg") == null)
                {
                    return(null);
                }
                obj.msg    = jsonMsg.GetValue("enc_msg");
                obj.msgStr = obj.msg == null ?  "" : obj.msg.ToString();
            }
            else
            {
                if (jsonMsg.GetValue("msg") == null)
                {
                    return(null);
                }
                obj.msg    = jsonMsg.GetValue("msg");
                obj.msgStr = JsonConvert.SerializeObject(obj.msg);
            }
            return(obj);
        }
Exemplo n.º 2
0
 public static String decryptMsg(BodyObj obj, String encodeKey)
 {
     try
     {
         return(CryptoUtil.AES_decrypt(obj.msgStr, encodeKey));
     }
     catch (Exception ex)
     {
         Console.WriteLine("error:" + ex.Message);
         return("500");
     }
 }
Exemplo n.º 3
0
 public static bool checkSignature(BodyObj obj, String token)
 {
     //计算接受到的消息的摘要
     //token长度 + 8B随机字符串长度 + 消息长度
     return(VerifySignature(obj.msgStr, obj.nonce, obj.msgSignature, token));
 }