CTT/Server/Hotfix/Game/Helper/AccountHelper.cs

60 lines
1.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using MongoDB.Driver;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace ET
{
public static class AccountHelper
{
public static async ETTask<int> GetFirbiddenIpCount(string ip)
{
var list = await DBComponent.Instance.QueryFilter(Builders<ForbiddenIP>.Filter.Eq(t => t.Ip, ip));
if (list != null && list.Count != 0)
{
ForbiddenIP forbiddenIP = list[0];
return forbiddenIP.count;
}
return 0;
}
}
public sealed class SecurityUtil
{
public class SecurityData
{
public byte[] xorScale;
}
private static readonly byte[] xorScale;
static SecurityUtil()
{
if (xorScale == null)
{
string path = Path.Combine(Environment.CurrentDirectory, "../Release/key");
string str = File.ReadAllText(path);
SecurityData data = MongoHelper.FromJson<SecurityData>(str);
xorScale = data.xorScale;
}
}
/// <summary>
/// 对数组进行异或
/// </summary>
/// <param name="buffer"></param>
/// <returns></returns>
public static byte[] Xor(byte[] buffer)
{
//------------------
//第3步xor解密
//------------------
int iScaleLen = xorScale.Length;
for (int i = 0; i < buffer.Length; i++)
{
buffer[i] = (byte)(buffer[i] ^ xorScale[i % iScaleLen]);
}
return buffer;
}
}
}