知识大全 C# 对称算法,加密解密类

Posted

篇首语:幽沉谢世事,俯默窥唐虞。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C# 对称算法,加密解密类相关的知识,希望对你有一定的参考价值。

C# 对称算法,加密解密类  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  模块编号     包含     作者     审核     编写日期     描述 提供对称加密 摘要算法

  如果模块有修改 则每次修改添加以下注释     Log编号     修改作者     修改日期     修改描述

  using System Text;    using System IO;    using System;    using System Text RegularExpressions;    using System Security Cryptography;

  namespace LHCHIP Common            /**//// <summary>        /// 对称加密算法类        /// </summary>        public class DecryptEncrypt                    /**//// <summary>            /// 返回自身的一个类            /// </summary>            public static DecryptEncrypt MyDecryptEncrypt                            get                                    return new DecryptEncrypt();                           

  private SymmetricAlgorithm mobjCryptoService;        private string Key;

  /**//// <summary>        /// 对称加密类的构造函数        /// </summary>        internal DecryptEncrypt()                    mobjCryptoService = new RijndaelManaged();            Key = rrp(%&h x H$jgsfgfsI Ftma &fvHrr&& *h%( lJ$lhj!y &(*jkPer a ;       

  /**//// <summary>        /// 获得密钥        /// </summary>        /// <returns>密钥</returns>        private byte[] GetLegalKey()                    string _TempKey = Key;            mobjCryptoService GenerateKey();            byte[] bytTemp = mobjCryptoService Key;            int KeyLength = bytTemp Length;            if (_TempKey Length > KeyLength)                     _TempKey = _TempKey Substring( KeyLength);            else if (_TempKey Length < KeyLength)                _TempKey = _TempKey PadRight(KeyLength );            return ASCIIEncoding ASCII GetBytes(_TempKey);                /**//// <summary>        /// 获得初始向量IV        /// </summary>        /// <returns>初试向量IV</returns>        private byte[] GetLegalIV()                    string _TempIV = @afetj*Ghg !rNIfsgr GUqd gsrb#GG HBh(urjj HJ($jhWk &!hjjri%$hjk ;            mobjCryptoService GenerateIV();            byte[] bytTemp = mobjCryptoService IV;            int IVLength = bytTemp Length;            if (_TempIV Length > IVLength)                _TempIV = _TempIV Substring( IVLength);            else if (_TempIV Length < IVLength)                _TempIV = _TempIV PadRight(IVLength );            return ASCIIEncoding ASCII GetBytes(_TempIV);       

  /**//// <summary>        /// 加密方法        /// </summary>        /// <param name= Source >待加密的串</param>        /// <returns>经过加密的串</returns>        public string Encrypto(string Source)                    byte[] bytIn = UTF Encoding UTF GetBytes(Source);            MemoryStream ms = new MemoryStream();            mobjCryptoService Key = GetLegalKey();            mobjCryptoService IV = GetLegalIV();            //创建对称加密器对象        ICryptoTransform encrypto = mobjCryptoService CreateEncryptor();            //定义将数据流链接到加密转换的流            CryptoStream cs = new CryptoStream(ms encrypto CryptoStreamMode Write);            cs Write(bytIn bytIn Length);            cs FlushFinalBlock();            ms Close();            byte[] bytOut = ms ToArray();            return Convert ToBase String(bytOut);       

  /**//// <summary>        /// 解密方法        /// </summary>        /// <param name= Source >待解密的串</param>        /// <returns>经过解密的串</returns>        public string Decrypto(string Source)                    byte[] bytIn = Convert FromBase String(Source);            MemoryStream ms = new MemoryStream(bytIn bytIn Length);            mobjCryptoService Key = GetLegalKey();            mobjCryptoService IV = GetLegalIV();            //创建对称解密器对象            ICryptoTransform encrypto = mobjCryptoService CreateDecryptor();            //定义将数据流链接到加密转换的流            CryptoStream cs = new CryptoStream(ms encrypto CryptoStreamMode Read);            StreamReader sr = new StreamReader(cs);            return sr ReadToEnd();           

cha138/Article/program/net/201311/11770

相关参考