33 lines
No EOL
933 B
C#
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;
|
|
}
|
|
}
|
|
} |