0% found this document useful (0 votes)
2 views

decode-encode

The document contains a C# class named EncodeDecode that provides methods for encoding, decoding, encrypting, and decrypting strings. It utilizes Triple DES encryption and MD5 hashing for security, allowing for the transformation of text through character manipulation and encryption. The methods include Encode, Decrypt, Encrypt, Decode, EncodeCharacter, and DecodeCharacter, each performing specific operations on the input text.

Uploaded by

ciel.studio.cute
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

decode-encode

The document contains a C# class named EncodeDecode that provides methods for encoding, decoding, encrypting, and decrypting strings. It utilizes Triple DES encryption and MD5 hashing for security, allowing for the transformation of text through character manipulation and encryption. The methods include Encode, Decrypt, Encrypt, Decode, EncodeCharacter, and DecodeCharacter, each performing specific operations on the input text.

Uploaded by

ciel.studio.cute
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 15

using System;

using System.Collections.Generic;
using System.Security.Cryptography;
using System.Text;

namespace Tool_HamSter
{
// Token: 0x02000002 RID: 2
public static class EncodeDecode
{
// Token: 0x06000001 RID: 1 RVA: 0x00002050 File Offset: 0x00000250
public static string Encode(string text)
{
text = text.Trim();
List<char> chars = new List<char>();
string text2 = "";
for (int i = 0; i < text.Length; i++)
{
chars.Add(text[i]);
}
for (int j = 0; j < chars.Count; j++)
{
chars[j] =
char.Parse(EncodeDecode.EncodeCharcter(char.ToString(chars[j])));
}
for (int k = 0; k < chars.Count / 2; k++)
{
bool flag = chars.Count % 2 != 0 && k == chars.Count / 2;
if (flag)
{
break;
}
int sum = (int)(chars[k] + chars[chars.Count - k - 1]);
bool flag2 = sum % 2 == 0;
if (flag2)
{
bool flag3 = chars[k] > chars[chars.Count - k - 1];
if (flag3)
{
text2 += ":";
text2 += ((int)(chars[k] - chars[chars.Count -
k - 1])).ToString();
}
bool flag4 = chars[k] == chars[chars.Count - k - 1];
if (flag4)
{
text2 += ":0";
}
bool flag5 = chars[k] < chars[chars.Count - k - 1];
if (flag5)
{
text2 += ":-";
text2 += ((int)(chars[chars.Count - k - 1] -
chars[k])).ToString();
}
chars[k] = (char)(sum / 2);
chars[chars.Count - k - 1] = (char)(sum / 2);
}
}
text = "";
for (int l = 0; l < chars.Count; l++)
{
text += chars[l].ToString();
}
text = text + " " + text2;
text = EncodeDecode.Encrypt(text, "hst");
return text;
}

// Token: 0x06000002 RID: 2 RVA: 0x000022B4 File Offset: 0x000004B4


public static string Decrypt(string str, string key)
{
byte[] array = Convert.FromBase64String(str);
byte[] key2 = new
MD5CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(key));
byte[] bytes = new TripleDESCryptoServiceProvider
{
Key = key2,
Mode = CipherMode.ECB,
Padding = PaddingMode.PKCS7
}.CreateDecryptor().TransformFinalBlock(array, 0, array.Length);
return Encoding.UTF8.GetString(bytes);
}

// Token: 0x06000003 RID: 3 RVA: 0x0000231C File Offset: 0x0000051C


public static string Encrypt(string toEncrypt, string key)
{
byte[] toEncryptArray = Encoding.UTF8.GetBytes(toEncrypt);
MD5CryptoServiceProvider hashmd5 = new
MD5CryptoServiceProvider();
byte[] keyArray =
hashmd5.ComputeHash(Encoding.UTF8.GetBytes(key));
TripleDESCryptoServiceProvider tdes = new
TripleDESCryptoServiceProvider
{
Key = keyArray,
Mode = CipherMode.ECB,
Padding = PaddingMode.PKCS7
};
ICryptoTransform cTransform = tdes.CreateEncryptor();
byte[] resultArray =
cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return Convert.ToBase64String(resultArray, 0,
resultArray.Length);
}

// Token: 0x06000004 RID: 4 RVA: 0x00002394 File Offset: 0x00000594


public static string Decode(string text)
{
text = EncodeDecode.Decrypt(text, "hst");
string[] data = text.Split(new char[]
{
' '
});
List<char> chars = new List<char>();
for (int i = 0; i < data[0].Length; i++)
{
chars.Add(data[0][i]);
}
bool flag = data[1] != null && data[1].Contains(":");
if (flag)
{
string[] array = data[1].Split(new char[]
{
':'
});
int num = 1;
for (int j = 0; j < chars.Count / 2; j++)
{
bool flag2 = chars.Count % 2 != 0 && j == chars.Count
/ 2;
if (flag2)
{
break;
}
int sum = (int)(chars[j] + chars[chars.Count - j -
1]);
bool flag3 = chars[j] == chars[chars.Count - j - 1];
if (flag3)
{
int num2 = int.Parse(array[num]);
bool flag4 = num2 == 0;
if (flag4)
{
chars[j] = (char)(sum / 2);
chars[chars.Count - j - 1] = (char)(sum /
2);
}
else
{
char @char = (char)((sum - num2) / 2);
char char2 = (char)(sum - (int)@char);
bool flag5 = @char > char2;
if (flag5)
{
bool flag6 = num2 > 0;
if (flag6)
{
chars[j] = @char;
chars[chars.Count - j - 1] =
char2;
}
else
{
chars[chars.Count - j - 1] =
@char;
chars[j] = char2;
}
}
else
{
bool flag7 = num2 > 0;
if (flag7)
{
chars[j] = char2;
chars[chars.Count - j - 1] =
@char;
}
else
{
chars[chars.Count - j - 1] =
char2;
chars[j] = @char;
}
}
}
num++;
}
}
}
for (int k = 0; k < chars.Count; k++)
{
chars[k] =
char.Parse(EncodeDecode.DecodeCharacter(char.ToString(chars[k])));
}
text = "";
for (int l = 0; l < chars.Count; l++)
{
text += chars[l].ToString();
}
return text;
}

// Token: 0x06000005 RID: 5 RVA: 0x00002644 File Offset: 0x00000844


public static string EncodeCharcter(string text)
{
uint num =
<PrivateImplementationDetails>.ComputeStringHash(text);
if (num <= 3859557458U)
{
if (num <= 923577301U)
{
if (num <= 839689206U)
{
if (num <= 806133968U)
{
if (num != 722245873U)
{
if (num == 806133968U)
{
if (text == "5")
{
return "m";
}
}
}
else if (text == ".")
{
return "h";
}
}
else if (num != 822911587U)
{
if (num == 839689206U)
{
if (text == "7")
{
return "a";
}
}
}
else if (text == "4")
{
return "j";
}
}
else if (num <= 873244444U)
{
if (num != 856466825U)
{
if (num == 873244444U)
{
if (text == "1")
{
return "6";
}
}
}
else if (text == "6")
{
return "5";
}
}
else if (num != 890022063U)
{
if (num != 906799682U)
{
if (num == 923577301U)
{
if (text == "2")
{
return "s";
}
}
}
else if (text == "3")
{
return "g";
}
}
else if (text == "0")
{
return "f";
}
}
else if (num <= 3758891744U)
{
if (num <= 1024243015U)
{
if (num != 1007465396U)
{
if (num == 1024243015U)
{
if (text == "8")
{
return "d";
}
}
}
else if (text == "9")
{
return "r";
}
}
else if (num != 3305896031U)
{
if (num == 3758891744U)
{
if (text == "e")
{
return "l";
}
}
}
else if (text == "@")
{
return "4";
}
}
else if (num <= 3792446982U)
{
if (num != 3775669363U)
{
if (num == 3792446982U)
{
if (text == "g")
{
return "v";
}
}
}
else if (text == "d")
{
return "c";
}
}
else if (num != 3809224601U)
{
if (num != 3826002220U)
{
if (num == 3859557458U)
{
if (text == "c")
{
return "@";
}
}
}
else if (text == "a")
{
return "x";
}
}
else if (text == "f")
{
return "1";
}
}
else if (num <= 4027333648U)
{
if (num <= 3943445553U)
{
if (num <= 3909890315U)
{
if (num != 3876335077U)
{
if (num == 3909890315U)
{
if (text == "l")
{
return "2";
}
}
}
else if (text == "b")
{
return "0";
}
}
else if (num != 3926667934U)
{
if (num == 3943445553U)
{
if (text == "n")
{
return "y";
}
}
}
else if (text == "o")
{
return "z";
}
}
else if (num <= 3977000791U)
{
if (num != 3960223172U)
{
if (num == 3977000791U)
{
if (text == "h")
{
return "t";
}
}
}
else if (text == "i")
{
return "o";
}
}
else if (num != 3993778410U)
{
if (num != 4010556029U)
{
if (num == 4027333648U)
{
if (text == "u")
{
return "3";
}
}
}
else if (text == "j")
{
return "9";
}
}
else if (text == "k")
{
return "u";
}
}
else if (num <= 4111221743U)
{
if (num <= 4060888886U)
{
if (num != 4044111267U)
{
if (num == 4060888886U)
{
if (text == "w")
{
return "q";
}
}
}
else if (text == "t")
{
return "n";
}
}
else if (num != 4077666505U)
{
if (num != 4094444124U)
{
if (num == 4111221743U)
{
if (text == "p")
{
return "8";
}
}
}
else if (text == "q")
{
return "k";
}
}
else if (text == "v")
{
return "i";
}
}
else if (num <= 4144776981U)
{
if (num != 4127999362U)
{
if (num == 4144776981U)
{
if (text == "r")
{
return "p";
}
}
}
else if (text == "s")
{
return "w";
}
}
else if (num != 4228665076U)
{
if (num != 4245442695U)
{
if (num == 4278997933U)
{
if (text == "z")
{
return "e";
}
}
}
else if (text == "x")
{
return ".";
}
}
else if (text == "y")
{
return "7";
}
return "b";
}

// Token: 0x06000006 RID: 6 RVA: 0x00002D6C File Offset: 0x00000F6C


public static string DecodeCharacter(string text)
{
uint num =
<PrivateImplementationDetails>.ComputeStringHash(text);
if (num <= 3859557458U)
{
if (num <= 923577301U)
{
if (num <= 839689206U)
{
if (num <= 806133968U)
{
if (num != 722245873U)
{
if (num == 806133968U)
{
if (text == "5")
{
return "6";
}
}
}
else if (text == ".")
{
return "x";
}
}
else if (num != 822911587U)
{
if (num == 839689206U)
{
if (text == "7")
{
return "y";
}
}
}
else if (text == "4")
{
return "@";
}
}
else if (num <= 873244444U)
{
if (num != 856466825U)
{
if (num == 873244444U)
{
if (text == "1")
{
return "f";
}
}
}
else if (text == "6")
{
return "1";
}
}
else if (num != 890022063U)
{
if (num != 906799682U)
{
if (num == 923577301U)
{
if (text == "2")
{
return "l";
}
}
}
else if (text == "3")
{
return "u";
}
}
else if (text == "0")
{
return "b";
}
}
else if (num <= 3758891744U)
{
if (num <= 1024243015U)
{
if (num != 1007465396U)
{
if (num == 1024243015U)
{
if (text == "8")
{
return "p";
}
}
}
else if (text == "9")
{
return "j";
}
}
else if (num != 3305896031U)
{
if (num == 3758891744U)
{
if (text == "e")
{
return "z";
}
}
}
else if (text == "@")
{
return "c";
}
}
else if (num <= 3792446982U)
{
if (num != 3775669363U)
{
if (num == 3792446982U)
{
if (text == "g")
{
return "3";
}
}
}
else if (text == "d")
{
return "8";
}
}
else if (num != 3809224601U)
{
if (num != 3826002220U)
{
if (num == 3859557458U)
{
if (text == "c")
{
return "d";
}
}
}
else if (text == "a")
{
return "7";
}
}
else if (text == "f")
{
return "0";
}
}
else if (num <= 4027333648U)
{
if (num <= 3943445553U)
{
if (num <= 3909890315U)
{
if (num != 3893112696U)
{
if (num == 3909890315U)
{
if (text == "l")
{
return "e";
}
}
}
else if (text == "m")
{
return "5";
}
}
else if (num != 3926667934U)
{
if (num == 3943445553U)
{
if (text == "n")
{
return "t";
}
}
}
else if (text == "o")
{
return "i";
}
}
else if (num <= 3977000791U)
{
if (num != 3960223172U)
{
if (num == 3977000791U)
{
if (text == "h")
{
return ".";
}
}
}
else if (text == "i")
{
return "v";
}
}
else if (num != 3993778410U)
{
if (num != 4010556029U)
{
if (num == 4027333648U)
{
if (text == "u")
{
return "k";
}
}
}
else if (text == "j")
{
return "4";
}
}
else if (text == "k")
{
return "q";
}
}
else if (num <= 4111221743U)
{
if (num <= 4060888886U)
{
if (num != 4044111267U)
{
if (num == 4060888886U)
{
if (text == "w")
{
return "s";
}
}
}
else if (text == "t")
{
return "h";
}
}
else if (num != 4077666505U)
{
if (num != 4094444124U)
{
if (num == 4111221743U)
{
if (text == "p")
{
return "r";
}
}
}
else if (text == "q")
{
return "w";
}
}
else if (text == "v")
{
return "g";
}
}
else if (num <= 4144776981U)
{
if (num != 4127999362U)
{
if (num == 4144776981U)
{
if (text == "r")
{
return "9";
}
}
}
else if (text == "s")
{
return "2";
}
}
else if (num != 4228665076U)
{
if (num != 4245442695U)
{
if (num == 4278997933U)
{
if (text == "z")
{
return "o";
}
}
}
else if (text == "x")
{
return "a";
}
}
else if (text == "y")
{
return "n";
}
return "m";
}
}
}

You might also like