public static string ByteArrayToString(byte[] ba)
StringBuilder hex = new StringBuilder(ba.Length * 2);
hex.AppendFormat("{0:x2}", b);
public static byte[] flared_47(byte[] p, byte[] d)
int[] array = new int[256];
int[] array2 = new int[256];
byte[] array3 = new byte[d.Length];
for (i = 0; i < 256; i++)
array[i] = (int)p[i % p.Length];
for (i = (num = 0); i < 256; i++)
num = (num + array2[i] + array[i]) % 256;
array2[num3] = array2[num];
int num4 = array2[(array2[num3] + array2[num]) % 256];
array3[i] = (byte)((int)d[i] ^ num4);
public static void Main()
byte[] data = new byte[]{0x21,0x70,0x70,0x60,0x50,0x20};
byte[] key = new byte[]{0xaa, 0xbb, 0xcc, 0xdd};
byte[] result = flared_47(key, data);
Console.WriteLine(ByteArrayToString(result));