コード例 #1
0
        public void AESFileTest2()
        {
            string keyString      = "unicorn";
            string bogusKeyString = "horsies";
            string plainText      = "ATTACK AT DAWN";
            string fileName       = "test.txt";
            string encFileName    = "text.enc";
            string salt           = AESWrapper.GenerateSaltString();

            byte[] key        = AESWrapper.GenerateKeyByte(keyString, salt, 20000);
            byte[] invalidKey = AESWrapper.GenerateKeyByte(bogusKeyString, salt, 20000);
            System.IO.File.WriteAllText(fileName, plainText);
            AESWrapper.EncryptFileToFile(fileName, encFileName, key);
            byte[] enc = System.IO.File.ReadAllBytes(encFileName);
            Assert.AreEqual(AESWrapper.DecryptToString(enc, key), plainText);
            bool decryptionFailed = false;

            try
            {
                Assert.AreEqual(AESWrapper.DecryptToString(enc, invalidKey), plainText);
            }
            catch (Exception e)
            {
                decryptionFailed = true;
            }
            Assert.IsTrue(decryptionFailed);

            System.IO.File.Delete(fileName);
            System.IO.File.Delete(encFileName);
        }