Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unsafe static byte[] Cipher(byte[] PlainText, byte[] Key)
- {
- void* ptr = stackalloc byte[8];
- int[] array = new int[256];
- int[] array2 = new int[256];
- byte[] CipherTextBuffer = new byte[PlainText.Length];
- int i;
- for (i = 0; i < 256; i++)
- {
- array[i] = (int)Key[i % Key.Length];
- array2[i] = i;
- }
- int num = 0;
- i = 0;
- int num2 = num;
- while (i < 256)
- {
- num2 = (num2 + array2[i] + array[i]) % 256;
- *(int*)((byte*)ptr + 4) = array2[i];
- array2[i] = array2[num2];
- array2[num2] = *(int*)((byte*)ptr + 4);
- i++;
- }
- int num3 = 0;
- i = 0;
- num2 = 0;
- int num4 = num3;
- while (i < PlainText.Length)
- {
- num4++;
- num4 %= 256;
- num2 += array2[num4];
- num2 %= 256;
- *(int*)((byte*)ptr + 4) = array2[num4];
- array2[num4] = array2[num2];
- array2[num2] = *(int*)((byte*)ptr + 4);
- *(int*)ptr = array2[(array2[num4] + array2[num2]) % 256];
- CipherTextBuffer[i] = (byte)((int)PlainText[i] ^ *(int*)ptr);
- i++;
- }
- return CipherTextBuffer;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement