/// <summary> /// 加密数据 /// </summary> /// <param name="Text"></param> /// <param name="sKey"></param> /// <returns></returns> public static string Encrypt(string text, string sKey) { try { DESCryptoServiceProvider des = new DESCryptoServiceProvider(); byte[] inputByteArray; inputByteArray = Encoding.Default.GetBytes(text); des.Key = ASCIIEncoding.ASCII.GetBytes(HashEncrypt.GetMd5(sKey).Substring(0, 8)); des.IV = ASCIIEncoding.ASCII.GetBytes("12345678"); System.IO.MemoryStream ms = new System.IO.MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); StringBuilder ret = new StringBuilder(); foreach (byte b in ms.ToArray()) { ret.AppendFormat("{0:X2}", b); } return(ret.ToString()); } catch (Exception exc) { throw exc; } }
/// <summary> /// 解密数据 /// </summary> /// <param name="Text"></param> /// <param name="sKey"></param> /// <returns></returns> public static string Decrypt(string text, string sKey) { try { DESCryptoServiceProvider des = new DESCryptoServiceProvider(); int len; len = text.Length / 2; byte[] inputByteArray = new byte[len]; int x, i; for (x = 0; x < len; x++) { i = Convert.ToInt32(text.Substring(x * 2, 2), 16); inputByteArray[x] = (byte)i; } des.Key = ASCIIEncoding.ASCII.GetBytes(HashEncrypt.GetMd5(sKey).Substring(0, 8)); des.IV = ASCIIEncoding.ASCII.GetBytes("12345678"); System.IO.MemoryStream ms = new System.IO.MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); return(Encoding.Default.GetString(ms.ToArray())); } catch { return(string.Empty); } }
/// <summary> /// 发送验证码 /// </summary> /// <param name="regionId">短信节点</param> /// <param name="accessKeyId">APPID</param> /// <param name="secret">secret</param> /// <param name="phone">手机号码</param> /// <param name="signName">短信签名</param> /// <param name="templateCode">短信模板ID</param> /// <param name="templateParam">短信模板变量对应的实际值,JSON格式</param> /// <param name="isvType">短信供应商(默认阿里云)</param> /// <returns></returns> public WebResponseContent SendTemplateSms(string regionId, string accessKeyId, string secret, string phone, string signName, string templateCode, string templateParam, IsvType isvType = IsvType.Aliyun) { switch (isvType) { case IsvType.Aliyun: IClientProfile profile = DefaultProfile.GetProfile(regionId, accessKeyId, secret); DefaultAcsClient client = new DefaultAcsClient(profile); CommonRequest request = new CommonRequest(); request.Method = MethodType.POST; request.Domain = "dysmsapi.aliyuncs.com"; request.Version = "2017-05-25"; request.Action = "SendSms"; //短信 // request.Protocol = ProtocolType.HTTP; request.AddQueryParameters("PhoneNumbers", phone); request.AddQueryParameters("SignName", signName); //"广州悦发" request.AddQueryParameters("TemplateCode", templateCode); // //request.AddQueryParameters("TemplateParam", "{ \"code \": \"" + content + "\" }"); request.AddQueryParameters("TemplateParam", templateParam); //"TemplateParam", "{'code':'" + content + "'}" // request.Protocol = ProtocolType.HTTP; CommonResponse response = client.GetCommonResponse(request); //string code = System.Text.Encoding.Default.GetString(response.HttpResponse.Content).Split(',')[1]; string _code = JsonConvert.DeserializeObject <AliSMSResult>(System.Text.Encoding.Default.GetString(response.HttpResponse.Content)).Code; if (_code == "OK") { return(new WebResponseContent().OK("发送成功")); } else { return(new WebResponseContent().Error(ExceptionMsg(_code))); } case IsvType.getui: string url = "http://www.ztsms.cn/sendNSms.do"; string userName = "******"; string tkey = System.DateTime.Now.ToString("yyyyMMddHHmmss"); string other = HashEncrypt.GetMd5("SMSKey"); string password = HashEncrypt.GetMd5(other + tkey); string data = string.Format("?username={0}&password={1}&mobile={2}&content={3}&tkey={4}&productid=676767&xh=", userName, password, phone, templateParam, tkey); HttpHelper httpHelper = new HttpHelper(url + data); string s = httpHelper.SendGet(); string code = s.Split(',')[0]; if (code == "1") { return(new WebResponseContent().OK("发送成功")); } else { return(new WebResponseContent().Error(ExceptionMsg(code))); } default: return(new WebResponseContent().Error("发送失败")); } }