server-master/srcs/GameChannel/Cryptography/WorldEncrypter.cs
2026-02-10 18:21:30 +01:00

33 lines
No EOL
933 B
C#

// WingsEmu
//
// Developed by NosWings Team
using System;
using System.Text;
namespace GameChannel.Cryptography
{
internal static class WorldEncrypter
{
internal static byte[] Encrypt(string packet, Encoding encoding)
{
byte[] strBytes = Encoding.Convert(Encoding.UTF8, encoding, Encoding.UTF8.GetBytes(packet));
byte[] encryptedData = new byte[strBytes.Length + (int)Math.Ceiling((decimal)strBytes.Length / 126) + 1];
int j = 0;
for (int i = 0; i < strBytes.Length; i++)
{
if ((i % 126) == 0)
{
encryptedData[i + j] = (byte)(strBytes.Length - i > 126 ? 126 : strBytes.Length - i);
j++;
}
encryptedData[i + j] = (byte)~strBytes[i];
}
encryptedData[^1] = 0xFF;
return encryptedData;
}
}
}