using System; using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; namespace OssTJiaUploaderService { public static class CryptoHelper { private static readonly string _key = EnvReader.GetMachineVariable("ENC_AES_KEY"); private static readonly string _iv = EnvReader.GetMachineVariable("ENC_AES_IV"); public static string Decrypt(string input) { if (!input.StartsWith("ENC(") || !input.EndsWith(")")) return input; var base64 = input[4..^1]; using var aes = Aes.Create(); aes.Key = Encoding.UTF8.GetBytes(_key); aes.IV = Encoding.UTF8.GetBytes(_iv); var decryptor = aes.CreateDecryptor(); var buffer = Convert.FromBase64String(base64); var result = decryptor.TransformFinalBlock(buffer, 0, buffer.Length); return Encoding.UTF8.GetString(result); } public static string Encrypt(string plainText) { using var aes = Aes.Create(); aes.Key = Encoding.UTF8.GetBytes(_key); aes.IV = Encoding.UTF8.GetBytes(_iv); var encryptor = aes.CreateEncryptor(); var bytes = Encoding.UTF8.GetBytes(plainText); var encrypted = encryptor.TransformFinalBlock(bytes, 0, bytes.Length); return $"ENC({Convert.ToBase64String(encrypted)})"; } } }