C#下Base64、MD5、AES加密
2015-11-08 23:19
501 查看
using System; using System.Collections.Generic; using System.Security.Cryptography; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string s="abcdef1234567890"; try { Console.WriteLine("Base64加密"); string key = System.Convert.ToBase64String(System.Text.Encoding.Default.GetBytes(s)); Console.WriteLine(key); Console.WriteLine(); Console.WriteLine("Base64解码"); string enkey = System.Text.Encoding.Default.GetString(System.Convert.FromBase64String(key)); Console.WriteLine(enkey); Console.WriteLine(); }catch(Exception e){ } MD5 md5Hash = MD5.Create(); string hash = GetMd5Hash(md5Hash, s); Console.WriteLine("The MD5 hash of " + s + " is:\n" + hash + "."); Console.WriteLine(); Console.WriteLine("AES加密"); Console.WriteLine(Encrypt(s)); Console.WriteLine(); Console.WriteLine("AES解密"); Console.WriteLine(Decrypt(Encrypt(s))); Console.ReadKey(); } //MD5加密 static string GetMd5Hash(MD5 md5Hash, string input) { byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(input)); StringBuilder sBuilder = new StringBuilder(); for (int i = 0; i < data.Length; i++) { sBuilder.Append(data[i].ToString("x2")); } return sBuilder.ToString(); } // AES-256 加密 public static string Encrypt(string toEncrypt) { // 256-AES key byte[] keyArray = UTF8Encoding.UTF8.GetBytes("12345678901234567890123456789012"); byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt); 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-256 解密 public static string Decrypt(string toDecrypt) { // 256-AES key byte[] keyArray = UTF8Encoding.UTF8.GetBytes("12345678901234567890123456789012"); byte[] toEncryptArray = Convert.FromBase64String(toDecrypt); 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); } } }
相关文章推荐
- C# List 的一些操作 (两List元素是否想同,List是否包含在另一个List中)
- c#操作.mpp文件
- C#学习笔记 反射
- C# WPF 使用Console.Write打印信息到控制台窗口中
- C#第十一天(winform)
- C#读取Excel的三种方式以及比较分析
- C#串口 Demo
- C#中利用委托实现多线程跨线程操作
- VS插件-GetSet生成器
- 参加微软黑客马拉松经历
- C#语言 数组
- 我看过的C#书籍
- C#的默认访问权限
- C#酒店管理系统(内部)业务逻辑
- C# : Form1 => Form2 -> Form1
- C#工程开发中 编译、安装、使用Berkeley DB步骤 (C#版)
- C# 读取在存储过程多结果集
- c#实现识别图片上的验证码数字
- C#数组
- C#读取XML文件