diff --git a/Falcon.Extend/AESCryptoService.cs b/Falcon.Extend/AESCryptoService.cs index 78d330c..ca47cab 100644 --- a/Falcon.Extend/AESCryptoService.cs +++ b/Falcon.Extend/AESCryptoService.cs @@ -19,13 +19,13 @@ namespace Falcon.Extend public string Encrypt(string content,string key) { var encryptKey = GetDecryptKey(key); using(var aesAlg = Aes.Create()) { - using(var encryptor = aesAlg.CreateEncryptor(encryptKey,aesAlg.IV)) { + var iv = aesAlg.IV; + using(var encryptor = aesAlg.CreateEncryptor(encryptKey,iv)) { using(var msEncrypt = new MemoryStream()) { using(var csEncrypt = new CryptoStream(msEncrypt,encryptor,CryptoStreamMode.Write)) using(var swEncrypt = new StreamWriter(csEncrypt)) { swEncrypt.Write(content); } - var iv = aesAlg.IV; var decryptedContent = msEncrypt.ToArray(); var result = new byte[iv.Length + decryptedContent.Length]; Buffer.BlockCopy(iv,0,result,0,iv.Length); diff --git a/Falcon.ExtendTests/AESCryptoServiceTests.cs b/Falcon.ExtendTests/AESCryptoServiceTests.cs index a0d3b84..edda063 100644 --- a/Falcon.ExtendTests/AESCryptoServiceTests.cs +++ b/Falcon.ExtendTests/AESCryptoServiceTests.cs @@ -9,6 +9,9 @@ namespace Falcon.Extend.Tests [TestClass()] public class AESCryptoServiceTests { + /// + /// 测试可用性 + /// [TestMethod()] public void EncryptTest() { ICryptoService service = new AESCryptoService(); @@ -24,5 +27,21 @@ namespace Falcon.Extend.Tests } } } + /// + /// 测试加密稳定性 + /// + [TestMethod()] + public void EncryptTest2() { + ICryptoService service = new AESCryptoService(); + var m = "aaaaa"; + var k = "abcd"; + var m1 = service.Encrypt(m,k); + var m2 = service.Encrypt(m,k); + Assert.AreNotEqual(m1,m2); + var m3 = service.Decrypt(m1,k); + var m4 = service.Decrypt(m2,k); + Assert.AreEqual(m3,m4); + Assert.AreEqual(m,m3); + } } } \ No newline at end of file