bingo 项目提交

This commit is contained in:
2026-04-20 13:49:36 +08:00
commit ad5920ac6a
5585 changed files with 1216243 additions and 0 deletions
@@ -0,0 +1,57 @@
using System.IO;
using System.Text;
using System.Security.Cryptography;
using UnityEngine;
namespace Comgreate
{
public class AESForFileKit
{
private static readonly byte[] Salt = Encoding.UTF8.GetBytes("Sgfsads");
private const int Iterations = 1000;
public static void EncryptFile(string inputPath, string outputPath, string password)
{
var passwordBytes = Encoding.UTF8.GetBytes(password);
var inputStream = new FileStream(inputPath, FileMode.Open, FileAccess.Read);
var outputStream = new FileStream(outputPath, FileMode.Create, FileAccess.Write);
using var aes = new AesManaged();
var key = new Rfc2898DeriveBytes(passwordBytes, Salt, Iterations);
aes.Key = key.GetBytes(aes.KeySize / 8);
aes.IV = key.GetBytes(aes.BlockSize / 8);
using var cryptoStream = new CryptoStream(outputStream, aes.CreateEncryptor(), CryptoStreamMode.Write);
inputStream.CopyTo(cryptoStream);
cryptoStream.FlushFinalBlock();
cryptoStream.Close();
outputStream.Close();
inputStream.Close();
}
public static byte[] DecryptToBytes(string inputPath, string password, out int dataSize)
{
var passwordBytes = Encoding.UTF8.GetBytes(password);
var inputStream = new FileStream(inputPath, FileMode.Open, FileAccess.Read);
var outputMemoryStream = new MemoryStream();
using (var aes = new AesManaged())
{
var key = new Rfc2898DeriveBytes(passwordBytes, Salt, Iterations);
aes.Key = key.GetBytes(aes.KeySize / 8);
aes.IV = key.GetBytes(aes.BlockSize / 8);
using (var cryptoStream = new CryptoStream(inputStream, aes.CreateDecryptor(), CryptoStreamMode.Read))
{
cryptoStream.CopyTo(outputMemoryStream);
}
}
var outputBytes = outputMemoryStream.ToArray();
dataSize = outputBytes.Length;
return outputBytes;
}
}
}