Files
JP_KDDI_LFPS_48100/LFP_Manager/Function/CsCryptoHelper.cs
2025-12-19 13:59:34 +09:00

55 lines
1.9 KiB
C#

using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
namespace LFP_Manager.Function
{
class CsCryptoHelper
{
// 고정 키 및 IV (보안상 실제 사용 시 안전하게 관리 필요)
private static readonly string key = "1234567890123456"; // 16글자 = 128bit
private static readonly string iv = "6543210987654321"; // 16글자 = 128bit
public static string Encrypt(string plainText)
{
using (Aes aesAlg = Aes.Create())
{
aesAlg.Key = Encoding.UTF8.GetBytes(key);
aesAlg.IV = Encoding.UTF8.GetBytes(iv);
ICryptoTransform encryptor = aesAlg.CreateEncryptor();
using (MemoryStream msEncrypt = new MemoryStream())
using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
{
swEncrypt.Write(plainText);
swEncrypt.Close();
return Convert.ToBase64String(msEncrypt.ToArray());
}
}
}
public static string Decrypt(string cipherText)
{
using (Aes aesAlg = Aes.Create())
{
aesAlg.Key = Encoding.UTF8.GetBytes(key);
aesAlg.IV = Encoding.UTF8.GetBytes(iv);
ICryptoTransform decryptor = aesAlg.CreateDecryptor();
byte[] buffer = Convert.FromBase64String(cipherText);
using (MemoryStream msDecrypt = new MemoryStream(buffer))
using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
using (StreamReader srDecrypt = new StreamReader(csDecrypt))
{
return srDecrypt.ReadToEnd();
}
}
}
}
}