您现在的位置是:首页 >

常用对称加密算法 C# 对称算法,加密解密类

火烧 2022-03-19 17:09:57 1070
C# 对称算法,加密解密类   模块编号 包含 作者 审核 编写日期 描述 提供对称加密 摘要算法  如果模块有修改 则每次修改添加以下注释 Log编号 修改作者 修改日期 修改描述   u i g

C# 对称算法,加密解密类  

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

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

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

常用对称加密算法 C# 对称算法,加密解密类

  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();            }

lishixinzhi/Article/program/net/201311/11770  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码