using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; namespace PdmSwPlugin.Common.Util { /// /// 字符加解密 /// 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(); } } } } } } }