The following code explains how to obfuscate and deobfuscate a Base64 encoded string by using a XOR in the string.
public class Test
{
/// <summary>
/// Constant for Obfuscating Base64 encoded text
/// </summary>
const byte xorConstant = 0x53;
/// <summary>
/// Obfuscates string by Base64 encoding using constant "xorConstant"
/// </summary>
/// <param name="text">String to encode</param>
/// <returns>Base64 encoded obfuscated string</returns>
public static string Obfuscate(string text)
{
if (string.IsNullOrEmpty(text))
{
return null;
}
else
{
byte[] data = Encoding.UTF8.GetBytes(text);
for (int i = 0; i < data.Length; i++)
{
data[i] = (byte)(data[i] ^ xorConstant);
}
return Convert.ToBase64String(data);
}
}
/// <summary>
/// Deobfuscates string by Base64 decoding using constant "xorConstant"
/// </summary>
/// <param name="text">String to decode</param>
/// <returns>Original string</returns>
public static string DeObfuscate(string text)
{
if (string.IsNullOrEmpty(text))
{
return null;
}
else
{
byte[] data = Convert.FromBase64String(text);
for (int i = 0; i < data.Length; i++)
{
data[i] = (byte)(data[i] ^ xorConstant);
}
return Encoding.UTF8.GetString(data);
}
}
}
No comments:
Post a Comment