当前位置: 移动技术网 > IT编程>开发语言>.net > sql字段加密解密存储

sql字段加密解密存储

2018年07月09日  | 移动技术网IT编程  | 我要评论

八府堂啪啪胶,帝都公主传,含辛茹苦是什么意思

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Web;

namespace Topevery.Basis.Web.Code
{
    public class CryptographyHelper
    {
        private DESCryptoServiceProvider key = null;

        public CryptographyHelper()
        {
            key = new DESCryptoServiceProvider();
            key.Key = Encoding.UTF8.GetBytes("WilsonFu");
            key.IV = Encoding.UTF8.GetBytes("WilsonFu");
        }

        /// <summary>
        /// 加密
        /// </summary>
        /// <param name="PlainText"></param>
        /// <returns></returns>
        public string Encrypt(string PlainText)
        {
            try
            {
                MemoryStream ms = new MemoryStream();

                CryptoStream encStream = new CryptoStream(ms, key.CreateEncryptor(), CryptoStreamMode.Write);

                StreamWriter sw = new StreamWriter(encStream);

                sw.WriteLine(PlainText);

                sw.Close();
                encStream.Close();

                byte[] buffer = ms.ToArray();

                ms.Close();

                return Convert.ToBase64String(buffer);
            }
            catch (Exception)
            {
                return string.Empty;
            }

        }

        /// <summary>
        /// 解密
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public string Decrypt(string value)
        {
            try
            {
                byte[] CypherText = Convert.FromBase64String(value);
                MemoryStream ms = new MemoryStream(CypherText);

                CryptoStream encStream = new CryptoStream(ms, key.CreateDecryptor(), CryptoStreamMode.Read);

                StreamReader sr = new StreamReader(encStream);

                string val = sr.ReadLine();

                sr.Close();
                encStream.Close();
                ms.Close();

                return val;
            }
            catch (Exception)
            {
                return string.Empty;
            }
        }

        /// <summary>
        /// 将字节数组转换成字符串
        /// </summary>
        /// <param name="bytes"></param>
        /// <returns></returns>
        private string BytesToString(Byte[] bytes)
        {
            char[] chars = new char[bytes.Length];
            for (int i = 0; i < bytes.Length; i++)
            {
                chars[i] = (char)bytes[i];
            }
            string result = new string(chars);
            return result;
        }

        /// <summary>
        /// 将字符串转换成字节数组
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        private Byte[] StringToBytes(string value)
        {
            byte[] bValue = new byte[value.Length];
            for (int i = 0; i < value.Length; i++)
            {
                bValue[i] = (byte)value[i];
            }
            return bValue;
        }
    }
}

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网