12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- using System;
- using System.Diagnostics;
- using System.IO;
- using System.Security.Cryptography;
- using System.Text;
- using UnityEngine;
- public class AESCrypto
- {
- private static readonly string AES_KEY = "7b5a4d3e2f1c0b0a"; // 确保使用与 Java 中生成的密钥相同
- public static string Decrypt(string encryptedData)
- {
- byte[] combinedData = Convert.FromBase64String(encryptedData);
- byte[] iv = new byte[16]; // 128 位 AES 的 IV 长度
- byte[] cipherText = new byte[combinedData.Length - iv.Length];
- Array.Copy(combinedData, 0, iv, 0, iv.Length);
- Array.Copy(combinedData, iv.Length, cipherText, 0, cipherText.Length);
- using (Aes aes = Aes.Create())
- {
- aes.Key = Encoding.UTF8.GetBytes(AES_KEY);
- aes.IV = iv;
- using (ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV))
- using (MemoryStream ms = new MemoryStream(cipherText))
- using (CryptoStream cs = new CryptoStream(ms, decryptor, CryptoStreamMode.Read))
- using (StreamReader sr = new StreamReader(cs))
- {
- return sr.ReadToEnd();
- }
- }
- }
- // 测试
- public static void Test()
- {
- string encryptedData = "lVqQnIvDq9OhO74MsEOLFCHwBa6n/sS2Voa6iWbbPunKJ4FVsLgU7GZCfEuvOVALTLW0k7/UyNjNQlOJ0B6QUZb+0IrJRK7g4CLEoPuhWTmeberYVfMNRFecesxt2IsttSWecqLtngVGJ5nOmTRTeJnum11GON8PAZTz85BLlLjOvOPpzw6oIcBrsqu6qu8UMW9BrjOuH4elg6zInmZxOlLOIMgTYwcc0lkWEb7RvEUrCGKC4DYnUI1s86iXKTvLrxIjB3WAcoyRcllAc7Tl4JWezUJ4kW3dPNaFSKb2JUncYPR+RR9iv3vUeLffQWPWSVesSjD/PsUXU1SQrjfSruO5sbRo33+plerlUv5Gm5iHrgXTrWILoMHomOz1Hv3HGkEODgIakOCP6SflVznfPxSFXa9tSLwQcV/2+p4SLBc8x9dNEsdh0TwHrwQ2eeNLBaHkoXGNg7Tg3Qh0WRrtiMhwEvydp7VNZBFKsdeQjRRlzsXZsgl/dP706//tw0Ze4KHGD6cf/RpZK5nWgWpjEjZfQseA4UJUU12hQq6iD8LE5ZL/swiVxUJf9fsRk9xs"; // 从 Java 获取的加密数据
- string decryptedData = Decrypt(encryptedData);
- UnityEngine.Debug.Log("Decrypted: " + decryptedData);
- }
- }
|