码迷,mamicode.com
首页 > 其他好文 > 详细

AesEncrypt AES加密方式

时间:2018-08-21 15:13:24      阅读:4159      评论:0      收藏:0      [点我收藏+]

标签:默认   nal   sub   add   color   final   transform   mod   form   

//加密明文,加密秘钥,向量=默认1234567890123456
public static string AesEncrypt(string value, string key, string iv = "1234567890123456")
        {
            if (string.IsNullOrEmpty(value)) return string.Empty;
            if (key == null) throw new Exception("未将对象引用设置到对象的实例。");
            if (key.Length < 16) throw new Exception("指定的密钥长度不能少于16位。");
            if (key.Length > 32) throw new Exception("指定的密钥长度不能多于32位。");
            if (key.Length != 16 && key.Length != 24 && key.Length != 32) throw new Exception("指定的密钥长度不明确。");
            if (!string.IsNullOrEmpty(iv))
            {
                if (iv.Length < 16) throw new Exception("指定的向量长度不能少于16位。");
            }

            var _keyByte = Encoding.UTF8.GetBytes(key);
            var _valueByte = Encoding.UTF8.GetBytes(value);
            using (var aes = new RijndaelManaged())
            {
                aes.IV = !string.IsNullOrEmpty(iv) ? Encoding.UTF8.GetBytes(iv) : Encoding.UTF8.GetBytes(key.Substring(0, 16));
                aes.Key = _keyByte;
                aes.Mode = CipherMode.CBC;//算法模式
                aes.Padding = PaddingMode.PKCS7;//填充
                var cryptoTransform = aes.CreateEncryptor();
                var resultArray = cryptoTransform.TransformFinalBlock(_valueByte, 0, _valueByte.Length);
                return Convert.ToBase64String(resultArray, 0, resultArray.Length);
            }
        }

 

AesEncrypt AES加密方式

标签:默认   nal   sub   add   color   final   transform   mod   form   

原文地址:https://www.cnblogs.com/lacey/p/9510987.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!