using System;
|
using System.IO;
|
using System.Security.Cryptography;
|
using System.Text;
|
|
namespace PdmAlert
|
{
|
public class Encryptor
|
{
|
private readonly byte[] key;
|
private readonly byte[] iv;
|
|
public Encryptor(string keyString, string ivString)
|
{
|
key = Encoding.UTF8.GetBytes(keyString);
|
iv = Encoding.UTF8.GetBytes(ivString);
|
}
|
|
public string Encrypt(string plainText)
|
{
|
using (var aes = Aes.Create())
|
{
|
aes.Key = key;
|
aes.IV = iv;
|
ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV);
|
|
using (MemoryStream msEncrypt = new MemoryStream())
|
{
|
using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
|
{
|
using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
|
{
|
swEncrypt.Write(plainText);
|
}
|
return Convert.ToBase64String(msEncrypt.ToArray());
|
}
|
}
|
}
|
}
|
|
|
public string Decrypt(string cipherText)
|
{
|
using (var aes = Aes.Create())
|
{
|
aes.Key = key;
|
aes.IV = iv;
|
ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV);
|
byte[] arr = Convert.FromBase64String(cipherText);
|
using (MemoryStream msDecrypt = new MemoryStream(arr))
|
{
|
using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
|
{
|
using (StreamReader srDecrypt = new StreamReader(csDecrypt))
|
{
|
return srDecrypt.ReadToEnd();
|
}
|
}
|
}
|
}
|
}
|
}
|
}
|