加入测试,要求aes加密为不稳定加密。及相同条件每次加密出结果不同
This commit is contained in:
parent
3f1abae89b
commit
d49a44384c
|
@ -19,13 +19,13 @@ namespace Falcon.Extend
|
||||||
public string Encrypt(string content,string key) {
|
public string Encrypt(string content,string key) {
|
||||||
var encryptKey = GetDecryptKey(key);
|
var encryptKey = GetDecryptKey(key);
|
||||||
using(var aesAlg = Aes.Create()) {
|
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 msEncrypt = new MemoryStream()) {
|
||||||
using(var csEncrypt = new CryptoStream(msEncrypt,encryptor,CryptoStreamMode.Write))
|
using(var csEncrypt = new CryptoStream(msEncrypt,encryptor,CryptoStreamMode.Write))
|
||||||
using(var swEncrypt = new StreamWriter(csEncrypt)) {
|
using(var swEncrypt = new StreamWriter(csEncrypt)) {
|
||||||
swEncrypt.Write(content);
|
swEncrypt.Write(content);
|
||||||
}
|
}
|
||||||
var iv = aesAlg.IV;
|
|
||||||
var decryptedContent = msEncrypt.ToArray();
|
var decryptedContent = msEncrypt.ToArray();
|
||||||
var result = new byte[iv.Length + decryptedContent.Length];
|
var result = new byte[iv.Length + decryptedContent.Length];
|
||||||
Buffer.BlockCopy(iv,0,result,0,iv.Length);
|
Buffer.BlockCopy(iv,0,result,0,iv.Length);
|
||||||
|
|
|
@ -9,6 +9,9 @@ namespace Falcon.Extend.Tests
|
||||||
[TestClass()]
|
[TestClass()]
|
||||||
public class AESCryptoServiceTests
|
public class AESCryptoServiceTests
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 测试可用性
|
||||||
|
/// </summary>
|
||||||
[TestMethod()]
|
[TestMethod()]
|
||||||
public void EncryptTest() {
|
public void EncryptTest() {
|
||||||
ICryptoService service = new AESCryptoService();
|
ICryptoService service = new AESCryptoService();
|
||||||
|
@ -24,5 +27,21 @@ namespace Falcon.Extend.Tests
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 测试加密稳定性
|
||||||
|
/// </summary>
|
||||||
|
[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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user