C# Sharp Encryption

C# Sharp Encryption

C# is the workhorse of modern .NET: Windows desktop, ASP.NET backends, Unity games, and cross-platform tools with .NET Core. It feels higher-level than C++, but compiled assemblies still hold readable metadata and string tables. Millions of developers use it for line-of-business apps and services.

Decompilers recover your source surprisingly well; connection strings, OAuth client secrets, and hard-coded licence flags are low-hanging fruit. StringEncrypt gives you C# that decrypts at runtime so those values are not sitting as plain literals in the binary.

String encryption supports both UNICODE and ANSI strings.

You can read more about C# strings at:

C# encryption (UNICODE Example)

Plaintext reference: StringEncrypt sample

// encrypted with https://www.stringencrypt.com (v1.5.0) [C#]
// myString = "StringEncrypt sample"
String myString = "\u0263\u143B\u245B\u34F3\u43A3\u551B\u633B\u7433" +
                  "\u8483\u937B\uA3EB\uB463\uC3A3\uD16B\uE37B\uF543" +
                  "\u0404\u143C\u23FC\u3474";

for (int YjISr = 0, yRCDL = 0; YjISr < 20; YjISr++)
{
	yRCDL = myString[YjISr];
	yRCDL = (((yRCDL & 0xFFFF) << 13) | ((yRCDL & 0xFFFF) >> 3)) & 0xFFFF;
	yRCDL = ((yRCDL & 0xFFFF) + 0x5212) & 0xFFFF;
	yRCDL = (yRCDL ^ ((yRCDL & 0xFFFF) >> 10)) & 0xFFFF;
	yRCDL = ((yRCDL & 0xFFFF) + 0x4E33) & 0xFFFF;
	yRCDL = ((yRCDL & 0xFFFF) + 1) & 0xFFFF;
	yRCDL = (((yRCDL & 0xFFFF) >> 1) | ((yRCDL & 0xFFFF) << 15)) & 0xFFFF;
	yRCDL = (yRCDL ^ ((yRCDL & 0xFFFF) >> 14)) & 0xFFFF;
	yRCDL = (((yRCDL & 0xFFFF) >> 8) | ((yRCDL & 0xFFFF) << 8)) & 0xFFFF;
	yRCDL = ((yRCDL & 0xFFFF) - YjISr) & 0xFFFF;
	yRCDL = (((yRCDL & 0xFFFF) << (YjISr % 16)) | ((yRCDL & 0xFFFF) >> (16 - (YjISr % 16)))) & 0xFFFF;
	for (int xWJMq = 0; xWJMq < 4; xWJMq++)
	{
		yRCDL = (((~(yRCDL & 0xFFFF)) & 0xFFFF) + 1) & 0xFFFF;
		yRCDL = ((yRCDL & 0xFFFF) + YjISr) & 0xFFFF;
	}
	yRCDL = (((yRCDL & 0xFFFF) >> 8) | ((yRCDL & 0xFFFF) << 8)) & 0xFFFF;
	yRCDL = (((yRCDL & 0xFFFF) >> (YjISr % 16)) | ((yRCDL & 0xFFFF) << (16 - (YjISr % 16)))) & 0xFFFF;
	myString = myString.Substring(0, YjISr) + (char)(yRCDL & 0xFFFF) + myString.Substring(YjISr + 1);
}

C# encryption (ANSI Example)

Plaintext reference: StringEncrypt sample

// encrypted with https://www.stringencrypt.com (v1.5.0) [C#]
// myString = "StringEncrypt sample"
String myString = "\xD1\x06\xA5\xF3\x88\x8A\xE5\x0B\x65\xA2\xE2\x73\x00\x28\x0B\x52" +
                  "\xE4\x1E\x64\x6E";

for (int lqwsH = 0, GLjNc = 0; lqwsH < 20; lqwsH++)
{
	GLjNc = myString[lqwsH];
	for (int LegzA = 0; LegzA < 3; LegzA++)
	{
		GLjNc = ((GLjNc & 0xFF) + 0x3E) & 0xFF;
	}
	GLjNc = (((GLjNc & 0xFF) << 4) | ((GLjNc & 0xFF) >> 4)) & 0xFF;
	for (int flEOi = 0; flEOi < 3; flEOi++)
	{
		GLjNc = (GLjNc ^ ((GLjNc & 0xFF) >> 7)) & 0xFF;
	}
	for (int enQKS = 0; enQKS < 4; enQKS++)
	{
		for (int LztXo = 0; LztXo < 3; LztXo++)
		{
			GLjNc = (((GLjNc & 0xFF) >> 7) | ((GLjNc & 0xFF) << 1)) & 0xFF;
		}
	}
	GLjNc = (GLjNc ^ (((GLjNc & 0xFF) << 5) & 0xFF)) & 0xFF;
	for (int xsvbL = 0; xsvbL < 4; xsvbL++)
	{
		GLjNc = (GLjNc ^ ((GLjNc & 0xFF) >> 6)) & 0xFF;
		GLjNc = (GLjNc ^ (((GLjNc & 0xFF) << 4) & 0xFF)) & 0xFF;
		GLjNc = (GLjNc ^ 0xD9) & 0xFF;
	}
	for (int EVGTY = 0; EVGTY < 4; EVGTY++)
	{
		GLjNc = (((GLjNc & 0xFF) >> 4) | ((GLjNc & 0xFF) << 4)) & 0xFF;
	}
	GLjNc = ((GLjNc & 0xFF) + 1) & 0xFF;
	GLjNc = (GLjNc ^ ((GLjNc & 0xFF) >> 5)) & 0xFF;
	GLjNc = (((GLjNc & 0xFF) >> 6) | ((GLjNc & 0xFF) << 2)) & 0xFF;
	GLjNc = ((GLjNc & 0xFF) + 1) & 0xFF;
	GLjNc = (GLjNc ^ (((GLjNc & 0xFF) << 4) & 0xFF)) & 0xFF;
	for (int ykNrW = 0; ykNrW < 3; ykNrW++)
	{
		GLjNc = (((GLjNc & 0xFF) >> (lqwsH % 8)) | ((GLjNc & 0xFF) << (8 - (lqwsH % 8)))) & 0xFF;
		GLjNc = (GLjNc ^ 0xFF) & 0xFF;
	}
	myString = myString.Substring(0, lqwsH) + (char)(GLjNc & 0xFF) + myString.Substring(lqwsH + 1);
}