From d49a44384c2471c33d662e9ffbaa351ea454cb0f Mon Sep 17 00:00:00 2001
From: falcon <9504402@qq.com>
Date: Sun, 12 Apr 2020 17:23:54 +0800
Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E6=B5=8B=E8=AF=95=EF=BC=8C?=
=?UTF-8?q?=E8=A6=81=E6=B1=82aes=E5=8A=A0=E5=AF=86=E4=B8=BA=E4=B8=8D?=
=?UTF-8?q?=E7=A8=B3=E5=AE=9A=E5=8A=A0=E5=AF=86=E3=80=82=E5=8F=8A=E7=9B=B8?=
=?UTF-8?q?=E5=90=8C=E6=9D=A1=E4=BB=B6=E6=AF=8F=E6=AC=A1=E5=8A=A0=E5=AF=86?=
=?UTF-8?q?=E5=87=BA=E7=BB=93=E6=9E=9C=E4=B8=8D=E5=90=8C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Falcon.Extend/AESCryptoService.cs | 4 ++--
Falcon.ExtendTests/AESCryptoServiceTests.cs | 19 +++++++++++++++++++
2 files changed, 21 insertions(+), 2 deletions(-)
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