75 lines
2.1 KiB
C#
75 lines
2.1 KiB
C#
using System.IO;
|
|
using System.Security.Cryptography;
|
|
using System.Text;
|
|
|
|
namespace AxCopilot.Services;
|
|
|
|
public static class GuideEncryptor
|
|
{
|
|
private static readonly byte[] Key = new byte[32]
|
|
{
|
|
65, 88, 67, 111, 112, 105, 108, 111, 116, 71,
|
|
117, 105, 100, 101, 75, 101, 121, 50, 48, 50,
|
|
54, 83, 101, 99, 117, 114, 101, 70, 105, 120,
|
|
101, 100
|
|
};
|
|
|
|
private static readonly byte[] Iv = new byte[16]
|
|
{
|
|
71, 117, 105, 100, 101, 73, 86, 70, 105, 120,
|
|
101, 100, 50, 48, 50, 54
|
|
};
|
|
|
|
public static void EncryptFile(string inputHtmlPath, string outputEncPath)
|
|
{
|
|
byte[] array = File.ReadAllBytes(inputHtmlPath);
|
|
using Aes aes = Aes.Create();
|
|
aes.Key = Key;
|
|
aes.IV = Iv;
|
|
aes.Mode = CipherMode.CBC;
|
|
aes.Padding = PaddingMode.PKCS7;
|
|
using ICryptoTransform cryptoTransform = aes.CreateEncryptor();
|
|
byte[] bytes = cryptoTransform.TransformFinalBlock(array, 0, array.Length);
|
|
File.WriteAllBytes(outputEncPath, bytes);
|
|
}
|
|
|
|
public static string DecryptToString(string encFilePath)
|
|
{
|
|
byte[] array = File.ReadAllBytes(encFilePath);
|
|
using Aes aes = Aes.Create();
|
|
aes.Key = Key;
|
|
aes.IV = Iv;
|
|
aes.Mode = CipherMode.CBC;
|
|
aes.Padding = PaddingMode.PKCS7;
|
|
using ICryptoTransform cryptoTransform = aes.CreateDecryptor();
|
|
byte[] bytes = cryptoTransform.TransformFinalBlock(array, 0, array.Length);
|
|
return Encoding.UTF8.GetString(bytes);
|
|
}
|
|
|
|
public static string DecryptToString(byte[] encrypted)
|
|
{
|
|
using Aes aes = Aes.Create();
|
|
aes.Key = Key;
|
|
aes.IV = Iv;
|
|
aes.Mode = CipherMode.CBC;
|
|
aes.Padding = PaddingMode.PKCS7;
|
|
using ICryptoTransform cryptoTransform = aes.CreateDecryptor();
|
|
byte[] bytes = cryptoTransform.TransformFinalBlock(encrypted, 0, encrypted.Length);
|
|
return Encoding.UTF8.GetString(bytes);
|
|
}
|
|
|
|
public static void EncryptGuides(string assetsFolder)
|
|
{
|
|
string text = Path.Combine(assetsFolder, "AX Copilot 사용가이드.htm");
|
|
string text2 = Path.Combine(assetsFolder, "AX Copilot 개발자가이드.htm");
|
|
if (File.Exists(text))
|
|
{
|
|
EncryptFile(text, Path.Combine(assetsFolder, "guide_user.enc"));
|
|
}
|
|
if (File.Exists(text2))
|
|
{
|
|
EncryptFile(text2, Path.Combine(assetsFolder, "guide_dev.enc"));
|
|
}
|
|
}
|
|
}
|