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