C#之AES256位加密解密
来源:互联网 发布:cs1.5fps优化器 编辑:程序博客网 时间:2024/05/16 10:27
密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。
AES加密代码
/// <summary> /// AES加密 //转载请注明来自 http://www.shang11.com /// </summary> /// <param name="encryptStr">明文</param> /// <param name="key">密钥</param> /// <returns></returns> public static string Encrypt(string encryptStr,string key) { byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key); byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(encryptStr); RijndaelManaged rDel = new RijndaelManaged(); rDel.Key = keyArray; rDel.Mode = CipherMode.ECB; rDel.Padding = PaddingMode.PKCS7; ICryptoTransform cTransform = rDel.CreateEncryptor(); byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length); return Convert.ToBase64String(resultArray, 0, resultArray.Length); }
AES解密代码
/// <summary> /// AES解密 /// </summary> /// <param name="decryptStr">密文</param> /// <param name="key">密钥</param> /// <returns></returns> public static string Decrypt(string decryptStr,string key) { byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key); byte[] toEncryptArray = Convert.FromBase64String(decryptStr); RijndaelManaged rDel = new RijndaelManaged(); rDel.Key = keyArray; rDel.Mode = CipherMode.ECB; rDel.Padding = PaddingMode.PKCS7; ICryptoTransform cTransform = rDel.CreateDecryptor(); byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length); return UTF8Encoding.UTF8.GetString(resultArray); }
主程序入口,测试代码
static void Main(string[] args) { string encryptStr,decryptStr, key; key = "ae125efkk4454eeff444ferfkny6oxi8"; encryptStr = "C#AES加密字符串"; Console.WriteLine("============== 256位AES加密 ============\n"); Console.WriteLine("加密前的字符串:"+encryptStr); Console.WriteLine("密钥:" + key); Console.WriteLine(); decryptStr = Program.Encrypt(encryptStr,key); Console.WriteLine("加密后的字符串:" + decryptStr); encryptStr = Program.Decrypt(decryptStr, key); Console.WriteLine("解密后的字符串:" + encryptStr); Console.ReadKey(); }
注意事项
密钥必须是32个字符(非中文),换句话说每个字符只能占1Byte。
0 0
- C#之AES256位加密解密
- C#之AES256位加密解密
- Java AES256加密解密实现
- Java AES256加密解密实现
- C#64位加密/解密
- C# 之加密解密
- iOS AES256/RSA/DES/MD5/sha-1 (加密/解密)
- AES 之128位加密与解密
- C#中base64之加密解密
- C#中base64之加密解密
- 关于AES256算法java端加密,ios端解密出现无法解密问题的解决方案
- 【转】关于AES256算法java端加密,ios端解密出现无法解密问题的解决方案
- 关于AES256算法java端加密,ios端解密出现无法解密问题的解决方案
- 关于AES256算法java端加密,ios端解密出现无法解密问题的解决方案
- JAVA下AES256加密
- Android中的AES256加密
- AES256加密方案
- 网页的加密解密之8位二进制ASCII码加密解密方法(转载)
- iOS中实现模糊效果(附带多种滤镜探索,你值得转载)
- 遍历Map的四种方法
- hdu4966GGS-DDU【最小树形图】 2014多校联合
- 自定义控件 仿微信朋友圈文字展开全文功能
- android中的服务---Service
- C#之AES256位加密解密
- 自动安装LNMP的简洁Shell脚本
- iOS/mac开发的一些知名个人博客
- android Sevice详解
- MultiAutoCompleteTextView和AutoCompleteTextView对比
- ThreadLocal详解
- 短信编辑器
- STM32F103学习笔记——仿真波形
- Nginx学习历程_配置文件说明