summaryrefslogtreecommitdiff
path: root/Thronefall_1_0/Thronefall/I2.Loc/StringObfucator.cs
blob: 4f054ef60bcedb14ec7febb364b5462d0adb7ac8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
using System;
using System.Text;

namespace I2.Loc;

public class StringObfucator
{
	public static char[] StringObfuscatorPassword = "ÝúbUu\u00b8CÁ§*4PÚ©-᩾@T6Dl±ÒWâuzÅm4GÐóØ$=Íg,¥Që®iKEßr¡×60Ít4öÃ~^«y:Èd1<QÛÝúbUu\u00b8CÁ§*4PÚ©-᩾@T6Dl±ÒWâuzÅm4GÐóØ$=Íg,¥Që®iKEßr¡×60Ít4öÃ~^«y:Èd".ToCharArray();

	public static string Encode(string NormalString)
	{
		try
		{
			return ToBase64(XoREncode(NormalString));
		}
		catch (Exception)
		{
			return null;
		}
	}

	public static string Decode(string ObfucatedString)
	{
		try
		{
			return XoREncode(FromBase64(ObfucatedString));
		}
		catch (Exception)
		{
			return null;
		}
	}

	private static string ToBase64(string regularString)
	{
		return Convert.ToBase64String(Encoding.UTF8.GetBytes(regularString));
	}

	private static string FromBase64(string base64string)
	{
		byte[] array = Convert.FromBase64String(base64string);
		return Encoding.UTF8.GetString(array, 0, array.Length);
	}

	private static string XoREncode(string NormalString)
	{
		try
		{
			char[] stringObfuscatorPassword = StringObfuscatorPassword;
			char[] array = NormalString.ToCharArray();
			int num = stringObfuscatorPassword.Length;
			int i = 0;
			for (int num2 = array.Length; i < num2; i++)
			{
				array[i] = (char)(array[i] ^ stringObfuscatorPassword[i % num] ^ (byte)((i % 2 == 0) ? (i * 23) : (-i * 51)));
			}
			return new string(array);
		}
		catch (Exception)
		{
			return null;
		}
	}
}