title: RC4 128 bit encryption in C#
body: <p>I need to perform a 128-bit RC4 encryption, I'm using .NET and C#. Is there a built-in function to do this.</p>
  
  <p>If not, I found this function that can do it:</p>
  
  <pre><code>public void RC4(ref Byte[] bytes, Byte[] key)
  {
      Byte[] s = new Byte[256];
      Byte[] k = new Byte[256];
      Byte temp;
      int i, j;
  
      for (i = 0; i &lt; 256; i++)
      {
          s[i] = (Byte)i;
          k[i] = key[i % key.GetLength(0)];
      }
  
      j = 0;
      for (i = 0; i &lt; 256; i++)
      {
          j = (j + s[i] + k[i]) % 256;
          temp = s[i];
          s[i] = s[j];
          s[j] = temp;
      }
  
      i = j = 0;
      for (int x = 0; x &lt; bytes.GetLength(0); x++)
      {
          i = (i + 1) % 256;
          j = (j + s[i]) % 256;
          temp = s[i];
          s[i] = s[j];
          s[j] = temp;
          int t = (s[i] + s[j]) % 256;
          bytes[x] ^= s[t];
      }
  }
  </code></pre>
  
  <p>But I don't know if it's 128-bit or not, it looks 256, but I really don't know the difference.</p>