Beispiel #1
0
        public void Test()
        {
            Random random   = new Random(123);
            int    byteSize = 800000;

            byte[] text = new byte[byteSize];
            random.NextBytes(text);
            for (int i = 0; i < 10; ++i)
            {
                byte[] key = new byte[8 * i + 8];
                random.NextBytes(key);

                var encrTrans = RC4.Get(key);
                var decrTrans = RC4.Get(key);

                byte[] encr = new byte[byteSize];
                encrTrans.TransformBlock(text, 0, byteSize, encr, 0);
                byte[] decr = new byte[byteSize];
                decrTrans.TransformBlock(encr, 0, byteSize, decr, 0);

                for (int j = 0; j < byteSize; ++j)
                {
                    Assert.AreEqual(text[j], decr[j], $"{j}");
                }
            }
        }
Beispiel #2
0
        public RC4CryptVM(string sourceFilePath, string destFilePath, byte[] keyBytes, bool isDeleteAfter)
            : base(isDeleteAfter, null)
        {
            SourceFilePath = sourceFilePath;
            DestFilePath   = destFilePath;
            CryptoName     = "RC4";

            Start(RC4.Get(keyBytes));
        }