ASE加密与解密

ASE加密与解密
ASE加密与解密

ASE加密与解密

using System;

using System.Collections.Generic;

using System.Text;

using System.IO;

using System.Security.Authentication;

using System.Security.Cryptography;

namespace XMLRead_Encoder

{

class RebectASE

{

///

/// AES加密

///

/// 要加密的字符串

/// 密钥

/// 向量

/// 返回加密完字符串,加密失败返回false

public static string AESEncrypt(string plainStr,string IV,string Key)

{

byte[] bKey = Encoding.UTF8.GetBytes(Key);

byte[] bIV = Encoding.UTF8.GetBytes(IV);

byte[] byteArray = Encoding.UTF8.GetBytes(plainStr);

string encrypt = null;

Rijndael aes = Rijndael.Create();

try

{

using (MemoryStream mStream = new MemoryStream())

{

using (CryptoStream cStream = new CryptoStream(mStream, aes.CreateEncryptor(bKey, bIV), CryptoStreamMode.Write))

{

cStream.Write(byteArray, 0, byteArray.Length);

cStream.FlushFinalBlock();

encrypt = Convert.ToBase64String(mStream.ToArray());

}

}

}

catch {

return "false";

}

aes.Clear();

return encrypt;

}

///

/// 解密

///

/// 要解密字符串

/// 向量

/// 密钥

/// 返回解密完成的字符串,解密错误返回false

public static string AESDecrypt(string encryptStr,string IV,string Key)

{

byte[] bKey = Encoding.UTF8.GetBytes(Key);

byte[] bIV = Encoding.UTF8.GetBytes(IV);

byte[] byteArray = Convert.FromBase64String(encryptStr);

string decrypt = null;

Rijndael aes = Rijndael.Create();

try

{

using (MemoryStream mStream = new MemoryStream())

{

using (CryptoStream cStream = new CryptoStream(mStream, aes.CreateDecryptor(bKey, bIV), CryptoStreamMode.Write))

{

cStream.Write(byteArray, 0, byteArray.Length);

cStream.FlushFinalBlock();

decrypt = Encoding.UTF8.GetString(mStream.ToArray());

}

}

}

catch {

return "false";

}

aes.Clear();

return decrypt;

}

}

}

相关主题
相关文档
最新文档