web项目xml配置文件获取数据 和TDES 加码

1 篇文章 0 订阅

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="dmzIUrl" value="https://api.we.com/sns/uswerinfo?acddn=" />
    <add1>jfdlafjli i绝对拉风</add1>
    <Key>BB</Key>
  </appSettings>
</configuration>



using System;

using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Xml;
using Ftp_SC;


public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        vic
        //创建并初始化一个xml对象
        XmlDocument xml = new XmlDocument();
        //加载xml文件
        xml.Load(HttpContext.Current.Server.MapPath("~/welfare/Iadd.xml"));
        //读取节点
        XmlNode snXmlNode = xml.SelectSingleNode("/configuration/appSettings/add");
        //读取节点的属性值内容
        string attribute = snXmlNode.Attributes["value"].Value;
        XmlNode snXmlNode1 = xml.SelectSingleNode("/configuration/appSettings/add1");
        string SystemName = snXmlNode1.InnerText;
        XmlNode key = xml.SelectSingleNode("/configuration/appSettings/Key");

        string TMYStr = "";
        string TMYStr1 = "";
        TMYStr = JM_DES.EncryptWithKey(attribute, key.InnerText);
        Console.WriteLine("加密后文本:{0}", TMYStr);
        TMYStr1 = JM_DES.DecryptWithKey(TMYStr, key.InnerText);
        Console.WriteLine("解密后文本:{0}", TMYStr1);

    }

}



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

/// <summary>
/// 加密解密引用
/// </summary>
using System.Security.Cryptography;
using System.IO;

namespace Ftp_SC
{
    class JM_DES
    {
        public static string _KEY = "HQDCKEY1";  //密钥  
        public static string _IV = "HQDCKEY2";   //向量  
        #region TripleDES算法
        //加密,使用密码产生加密算法的公钥,并使用TripleDES对密码进行加密。
        public static string Encrypt(string pass)
        {
            try
            {
                byte[] bt = (new System.Text.UnicodeEncoding()).GetBytes(pass);
                PasswordDeriveBytes pdb = new PasswordDeriveBytes(pass, null);//不加密钥,直接psss 固定密钥 可以修改
                byte[] key = pdb.GetBytes(24);
                byte[] iv = pdb.GetBytes(8);
                MemoryStream ms = new MemoryStream();
                TripleDESCryptoServiceProvider tdesc = new TripleDESCryptoServiceProvider();
                CryptoStream cs = new CryptoStream(ms, tdesc.CreateEncryptor(key, iv), CryptoStreamMode.Write);
                cs.Write(bt, 0, bt.Length);
                cs.FlushFinalBlock();
                return Convert.ToBase64String(ms.ToArray());
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        //解密,使用密码产生加密算法的公钥,并使用TripleDES对加密数据进行解密。   
        public static string Decrypt(string str)
        {
            try
            {
                byte[] bt = Convert.FromBase64String(str);
                PasswordDeriveBytes pdb = new PasswordDeriveBytes(str, null);//不加密钥,直接str 固定密钥 可以修改
                byte[] key = pdb.GetBytes(24);
                byte[] iv = pdb.GetBytes(8);
                MemoryStream ms = new MemoryStream();
                TripleDESCryptoServiceProvider tdesc = new TripleDESCryptoServiceProvider();
                CryptoStream cs = new CryptoStream(ms, tdesc.CreateDecryptor(key, iv), CryptoStreamMode.Write);
                cs.Write(bt, 0, bt.Length);
                cs.FlushFinalBlock();
                return (new System.Text.UnicodeEncoding()).GetString(ms.ToArray());
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        //使用:    
        //string str = Encrypt("bbb");    
        //Console.WriteLine(Decrypt(str, "bbb"));    
        //加密,使用密码产生加密算法的公钥,并使用TripleDES对密码进行加密。   
        public static string EncryptWithKey(string pass, string p_key)
        {
            try
            {
                byte[] bt = (new System.Text.UnicodeEncoding()).GetBytes(pass);
                PasswordDeriveBytes pdb = new PasswordDeriveBytes(p_key, null);
                byte[] key = pdb.GetBytes(24);
                byte[] iv = pdb.GetBytes(8);
                MemoryStream ms = new MemoryStream();
                TripleDESCryptoServiceProvider tdesc = new TripleDESCryptoServiceProvider();
                CryptoStream cs = new CryptoStream(ms, tdesc.CreateEncryptor(key, iv), CryptoStreamMode.Write);
                cs.Write(bt, 0, bt.Length);
                cs.FlushFinalBlock();
                return Convert.ToBase64String(ms.ToArray());
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        //解密,使用密码产生加密算法的公钥,并使用TripleDES对加密数据进行解密。    
        public static string DecryptWithKey(string str, string p_key)
        {
            try
            {
                byte[] bt = Convert.FromBase64String(str);
                PasswordDeriveBytes pdb = new PasswordDeriveBytes(p_key, null);
                byte[] key = pdb.GetBytes(24);
                byte[] iv = pdb.GetBytes(8);
                MemoryStream ms = new MemoryStream();
                TripleDESCryptoServiceProvider tdesc = new TripleDESCryptoServiceProvider();
                CryptoStream cs = new CryptoStream(ms, tdesc.CreateDecryptor(key, iv), CryptoStreamMode.Write);
                cs.Write(bt, 0, bt.Length);
                cs.FlushFinalBlock();
                return (new System.Text.UnicodeEncoding()).GetString(ms.ToArray());
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        #endregion


        #region DES

        /// <summary>  
        /// 加密  
        /// </summary>  
        /// <param name="data"></param>  
        /// <returns></returns>  
        public static string Encode(string data)
        {

            byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(_KEY);
            byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(_IV);

            DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
            int i = cryptoProvider.KeySize;
            MemoryStream ms = new MemoryStream();
            CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey, byIV), CryptoStreamMode.Write);

            StreamWriter sw = new StreamWriter(cst);
            sw.Write(data);
            sw.Flush();
            cst.FlushFinalBlock();
            sw.Flush();

            string strRet = Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);
            return strRet;
        }

        /// <summary>  
        /// 解密  
        /// </summary>  
        /// <param name="data"></param>  
        /// <returns></returns>  
        public static string Decode(string data)
        {

            byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(_KEY);
            byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(_IV);

            byte[] byEnc;

            try
            {
                data.Replace("_%_", "/");
                data.Replace("-%-", "#");
                byEnc = Convert.FromBase64String(data);

            }
            catch
            {
                return null;
            }

            DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
            MemoryStream ms = new MemoryStream(byEnc);
            CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey, byIV), CryptoStreamMode.Read);
            StreamReader sr = new StreamReader(cst);
            return sr.ReadToEnd();
        }
        #endregion
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

强_哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值