C#之AES256位加密解密
来源:互联网 发布:linux系统怎么用java 编辑:程序博客网 时间:2024/04/29 13:18
密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。
AES加密代码
/// <summary> /// AES加密 /// </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(); }
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码加密解密方法(转载)
- android 开发之socket编程 UDP和TCP通信实现
- Digsilent双馈风机变风速详解
- 读《数据结构学习指导和习题解答》(C++语言版)有感
- Android数据的四种存储方式(2)SQLite
- Shell基础-Bash变量-预定义变量
- C#之AES256位加密解密
- p123.29t srand(5)排序
- hdu 4045 Machine scheduling 斯特林数+插板法
- Vim工作中常用命令-文本浏览篇
- Android数据的四种存储方式(1)SharedPreferences、SQLite、Content Provider和File 简介
- 利用Matlab将图片转换成素描(简笔画)风格
- “This text field does not specify an inputType ora hint” warning
- fun:限制表单域的输入内容格式
- 复数中的运算符重载(续)