Files
finance_tjia/CryptoHelper.cs
T
2026-10-29 11:52:09 +08:00

45 lines
1.5 KiB
C#

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)})";
}
}
}