NG_/Scripts/UI/全局/AESHelper.cs

66 lines
2.2 KiB
C#
Raw Normal View History

2024-12-13 18:49:44 +08:00
using System;
using System.Collections;
using System.Collections.Generic;
using System.Security.Cryptography;
using System.Text;
using UnityEngine;
public class AESHelper : MonoBehaviour
{
private static string key = "0e40d2202209fdc4"; // 16字节的密钥
// 加密方法
public static string Encrypt(string plainText)
{
if (string.IsNullOrEmpty(plainText)) return null;
// 将字符串转换为字节数组
byte[] toEncryptArray = Encoding.UTF8.GetBytes(plainText);
// 初始化RijndaelManaged对象AES算法
RijndaelManaged rm = new RijndaelManaged
{
Key = Encoding.UTF8.GetBytes(key), // 使用UTF-8编码的密钥
Mode = CipherMode.ECB, // 设置为ECB模式
Padding = PaddingMode.PKCS7 // 使用PKCS7填充
};
// 创建加密转换器
ICryptoTransform cTransform = rm.CreateEncryptor();
// 执行加密操作
byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
// 将加密后的字节数组转换为Base64字符串
return Convert.ToBase64String(resultArray);
}
public static string Decrypt(string cipherText)
{
if (string.IsNullOrEmpty(cipherText)) return null;
// 将Base64编码的密文转换为字节数组
byte[] toDecryptArray = Convert.FromBase64String(cipherText);
// 初始化RijndaelManaged对象AES算法
RijndaelManaged rm = new RijndaelManaged
{
Key = Encoding.UTF8.GetBytes(key), // 使用UTF-8编码的密钥
Mode = CipherMode.ECB, // 设置为ECB模式
Padding = PaddingMode.PKCS7 // 使用PKCS7填充
};
// 创建解密转换器
ICryptoTransform cTransform = rm.CreateDecryptor();
// 执行解密操作
byte[] resultArray = cTransform.TransformFinalBlock(toDecryptArray, 0, toDecryptArray.Length);
// 将解密后的字节数组转换为字符串
return Encoding.UTF8.GetString(resultArray);
}
}