您的位置:首页 > 编程语言 > C#

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);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: