AES加密源码

来源:互联网 发布:宁波市软件行业协会 编辑:程序博客网 时间:2024/06/05 11:39

C#版本工具包【AES加密与解密】

  • **适用实体数据传输,通常和MD5加密配合使用;

    public class AESUtil    {        /// <summary>        /// 编码设置        /// </summary>        public static string DEFAULT_CHARSET = "UTF-8";        /// <summary>        /// 加密算法        /// </summary>        /// <param name="content">加密内容</param>        /// <param name="password">密钥</param>        /// <returns></returns>        public static string encrypt(string content, string password)        {            if (string.IsNullOrEmpty(content)) return null;            Byte[] toEncryptArray = Encoding.UTF8.GetBytes(content);            string secretMd5 = MD5Util.strToMd5(password, DEFAULT_CHARSET);            password = MD5Util.strToMd5(password + secretMd5, DEFAULT_CHARSET);            System.Security.Cryptography.RijndaelManaged rm = new System.Security.Cryptography.RijndaelManaged            {                Key = Encoding.UTF8.GetBytes(password),                Mode = System.Security.Cryptography.CipherMode.ECB,                Padding = System.Security.Cryptography.PaddingMode.PKCS7            };            System.Security.Cryptography.ICryptoTransform cTransform = rm.CreateEncryptor();            Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);            return Convert.ToBase64String(resultArray, 0, resultArray.Length);        }        /// <summary>        /// 解密算法        /// </summary>        /// <param name="content">解密内容</param>        /// <param name="password">密钥</param>        /// <returns></returns>        public static string decrypt(string content, string password)        {            if (string.IsNullOrEmpty(content)) return null;            Byte[] toEncryptArray = Convert.FromBase64String(content);            string secretMd5 = MD5Util.strToMd5(password, DEFAULT_CHARSET);            password = MD5Util.strToMd5(password + secretMd5, DEFAULT_CHARSET);            System.Security.Cryptography.RijndaelManaged rm = new System.Security.Cryptography.RijndaelManaged            {                Key = Encoding.UTF8.GetBytes(password),                Mode = System.Security.Cryptography.CipherMode.ECB,                Padding = System.Security.Cryptography.PaddingMode.Zeros,                BlockSize = 128            };            System.Security.Cryptography.ICryptoTransform cTransform = rm.CreateDecryptor();            Byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);            return Encoding.UTF8.GetString(resultArray);        }    }