60 lines
1.7 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|