Files

60 lines
1.7 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace TemuKJD.Helper
{
public class AesHelper
{
private readonly byte[] _key; // 256位密钥
private readonly byte[] _iv; // 128位初始化向量
public AesHelper(string base64Key, string base64Iv)
{
_key = Convert.FromBase64String(base64Key);
_iv = Convert.FromBase64String(base64Iv);
}
public string Encrypt(string plainText)
{
using (var aes = Aes.Create())
{
aes.Key = _key;
//aes.IV = _iv;
using (var encryptor = aes.CreateEncryptor())
using (var ms = new MemoryStream())
{
using (var cs = new CryptoStream(ms, encryptor, CryptoStreamMode.Write))
using (var sw = new StreamWriter(cs))
{
sw.Write(plainText);
}
return Convert.ToBase64String(ms.ToArray());
}
}
}
public string Decrypt(string cipherText)
{
using (var aes = Aes.Create())
{
aes.Key = _key;
aes.IV = _iv;
using (var decryptor = aes.CreateDecryptor())
using (var ms = new MemoryStream(Convert.FromBase64String(cipherText)))
using (var cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read))
using (var sr = new StreamReader(cs))
{
return sr.ReadToEnd();
}
}
}
}
}