public void TestAesDefaultKey() { // arrange using (var csp = new AESCryptoProvider()) { var random = new Random(42); var data = new byte[(int)(csp.KeySize * 1.5)]; random.NextBytes(data); var msSrc = new MemoryStream(); var mswSrc = msSrc.AsUnclosable(); var msDst = new MemoryStream(); var mswDst = msDst.AsUnclosable(); mswSrc.Write(data, 0, data.Length); mswSrc.Position = 0; // act csp.Encrypt(mswDst, mswSrc, (int)mswSrc.Length); mswSrc.Position = 0; mswDst.Position = 0; csp.Decrypt(mswSrc, mswDst, (int)mswDst.Length); var decryptedData = msSrc.GetBuffer(); // assert for (int i = 0; i < msSrc.Length; i++) { Assert.AreEqual(data[i], decryptedData[i]); } } }
public void Execute() { var aes = new AESCryptoProvider { DefaultEncryptionEncodeMode = EncodeMode.Base64, DefaultEncoding = Encoding.UTF8, Key = "12345678" }; aes.BeforeSetSymmetricAlgorithm += (sender, args) => { var algorithm = args.Data; // toDo something... algorithm.KeySize = 128; }; aes.AfterSetSymmetricAlgorithm += (sender, args) => { var algorithm = args.Data; // toDo something... Console.WriteLine($"KeySize: {algorithm.KeySize}, BlockSize: {algorithm.BlockSize}"); }; var data = "测试test123..."; Console.WriteLine($"原始数据:{data}"); var encrypt = aes.Encrypt(data); Console.WriteLine($"加密后:{encrypt}"); var decrypt = aes.Decrypt(encrypt); Console.WriteLine($"解密后:{decrypt}"); }
public void TestAes() { // arrange using (var csp = new AESCryptoProvider()) { var random = new Random(42); var keySizes = csp.ValidKeySizes; foreach (var sz in keySizes) { csp.KeySize = sz; var key = new byte[sz / 8]; GenerateKey(key); var data = new byte[(int)(sz / 8 * 1.5)]; random.NextBytes(data); var msSrc = new MemoryStream(); var mswSrc = msSrc.AsUnclosable(); var msDst = new MemoryStream(); var mswDst = msDst.AsUnclosable(); mswSrc.Write(data, 0, data.Length); mswSrc.Position = 0; // act csp.Key = key; csp.Encrypt(mswDst, mswSrc, (int)mswSrc.Length); mswSrc.Position = 0; mswDst.Position = 0; csp.Decrypt(mswSrc, mswDst, (int)mswDst.Length); var decryptedData = msSrc.GetBuffer(); // assert for (int i = 0; i < msSrc.Length; i++) { Assert.AreEqual(data[i], decryptedData[i]); } } } }
public void CanDecrypt() { //These two values should not be hard coded in your code. byte[] key = { 251, 9, 67, 117, 237, 158, 138, 150, 255, 97, 103, 128, 183, 65, 76, 161, 7, 79, 244, 225, 146, 180, 51, 123, 118, 167, 45, 10, 184, 181, 202, 190 }; byte[] vector = { 214, 11, 221, 108, 210, 71, 14, 15, 151, 57, 241, 174, 177, 142, 115, 137 }; using (var rijndaelHelper = new AESCryptoProvider(key, vector)) { var encrypt = rijndaelHelper.Encrypt(RawValue); var decrypt = rijndaelHelper.Decrypt(encrypt); Assert.AreEqual(RawValue, decrypt); } }