NG_/Assets/Scripts/UI/全局/AESHelper.cs
2024-12-13 19:40:05 +08:00

66 lines
2.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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