From 5d82634160a000234a80906b2f7ac771fb146404 Mon Sep 17 00:00:00 2001 From: SmallChi <564952747@qq.com> Date: Sun, 10 Jun 2018 23:27:00 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=8A=A0=E5=AF=86AES128=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/GBNewEnergy.Protocol/INEEncrypt.cs | 2 +- src/GBNewEnergy.Protocol/NEEncryptFactory.cs | 4 +- ...8EncryptImpl.cs => NEAES128EncryptImpl.cs} | 24 ++++------ ...re2.cs => NEAES128EncryptImpl_NetCore2.cs} | 6 +-- ..._RSAEncryptImpl.cs => NERSAEncryptImpl.cs} | 6 +-- src/GBNewEnergy.Protocol/NEPackage.cs | 2 +- .../NEEncryptsNET4.Test.csproj | 6 +++ .../NEEncryptsNET4.Test/Program.cs | 47 ++++++------------- .../NEEncryptsNET45.Test.csproj | 6 +++ .../NEEncryptsNET45.Test/Program.cs | 16 ++++++- .../NEEncryptsNETCore.Test.csproj | 4 ++ .../NEEncryptsNETCore.Test/Program.cs | 18 ++++++- 12 files changed, 80 insertions(+), 61 deletions(-) rename src/GBNewEnergy.Protocol/NEEncrypts/{NE_AES128EncryptImpl.cs => NEAES128EncryptImpl.cs} (76%) rename src/GBNewEnergy.Protocol/NEEncrypts/{NE_AES128EncryptImpl_NetCore2.cs => NEAES128EncryptImpl_NetCore2.cs} (92%) rename src/GBNewEnergy.Protocol/NEEncrypts/{NE_RSAEncryptImpl.cs => NERSAEncryptImpl.cs} (74%) diff --git a/src/GBNewEnergy.Protocol/INEEncrypt.cs b/src/GBNewEnergy.Protocol/INEEncrypt.cs index c1ca80d..c06d9ec 100644 --- a/src/GBNewEnergy.Protocol/INEEncrypt.cs +++ b/src/GBNewEnergy.Protocol/INEEncrypt.cs @@ -7,6 +7,6 @@ namespace GBNewEnergy.Protocol public interface INEEncrypt { byte[] Encrypt(byte[] buffer); - byte[] Eecrypt(byte[] buffer); + byte[] Decrypt(byte[] buffer); } } diff --git a/src/GBNewEnergy.Protocol/NEEncryptFactory.cs b/src/GBNewEnergy.Protocol/NEEncryptFactory.cs index 6619778..029b40a 100644 --- a/src/GBNewEnergy.Protocol/NEEncryptFactory.cs +++ b/src/GBNewEnergy.Protocol/NEEncryptFactory.cs @@ -20,10 +20,10 @@ namespace GBNewEnergy.Protocol #if NETCOREAPP2_1 return new NE_AES128EncryptImpl_NetCore2(nEConfigs); #else - return new NE_AES128EncryptImpl(nEConfigs); + return new NEAES128EncryptImpl(nEConfigs); #endif case NEEncryptMethod.RSA: - return new NE_RSAEncryptImpl(nEConfigs); + return new NERSAEncryptImpl(nEConfigs); default: return null; } diff --git a/src/GBNewEnergy.Protocol/NEEncrypts/NE_AES128EncryptImpl.cs b/src/GBNewEnergy.Protocol/NEEncrypts/NEAES128EncryptImpl.cs similarity index 76% rename from src/GBNewEnergy.Protocol/NEEncrypts/NE_AES128EncryptImpl.cs rename to src/GBNewEnergy.Protocol/NEEncrypts/NEAES128EncryptImpl.cs index d50ad70..6120c82 100644 --- a/src/GBNewEnergy.Protocol/NEEncrypts/NE_AES128EncryptImpl.cs +++ b/src/GBNewEnergy.Protocol/NEEncrypts/NEAES128EncryptImpl.cs @@ -6,7 +6,7 @@ using System.Text; namespace GBNewEnergy.Protocol.NEEncrypts { - public class NE_AES128EncryptImpl : INEEncrypt + public class NEAES128EncryptImpl : INEEncrypt { private readonly NEGlobalConfigs _nEConfigs; @@ -15,14 +15,13 @@ namespace GBNewEnergy.Protocol.NEEncrypts /// private readonly static byte[] saltBytes = new byte[9] { 13, 34, 27, 67, 189, 255, 104, 219, 122 }; - public NE_AES128EncryptImpl(NEGlobalConfigs nEConfigs) + public NEAES128EncryptImpl(NEGlobalConfigs nEConfigs) { _nEConfigs = nEConfigs; } public byte[] Encrypt(byte[] buffer) - { - byte[] decryptedBytes = null; + { using (var ms = new MemoryStream()) { using (var AES = new RijndaelManaged()) @@ -33,24 +32,21 @@ namespace GBNewEnergy.Protocol.NEEncrypts AES.Key = key.GetBytes(32); AES.IV = key.GetBytes(16); AES.Mode = CipherMode.CBC; - using (var cs = new CryptoStream(ms, AES.CreateDecryptor(), CryptoStreamMode.Write)) + using (var cs = new CryptoStream(ms, AES.CreateEncryptor(), CryptoStreamMode.Write)) { cs.Write(buffer, 0, buffer.Length); cs.Close(); } - decryptedBytes = ms.ToArray(); + return ms.ToArray(); } } - return decryptedBytes; } - public byte[] Eecrypt(byte[] buffer) + public byte[] Decrypt(byte[] buffer) { - byte[] decryptedBytes = null; using (var ms = new MemoryStream()) + using (var AES = new RijndaelManaged()) { - using (var AES = new RijndaelManaged()) - { AES.KeySize = 256; AES.BlockSize = 128; var key = new Rfc2898DeriveBytes(_nEConfigs.NEEncryptKeyBytes, saltBytes, 1000); @@ -62,10 +58,8 @@ namespace GBNewEnergy.Protocol.NEEncrypts cs.Write(buffer, 0, buffer.Length); cs.Close(); } - decryptedBytes = ms.ToArray(); - } - } - return decryptedBytes; + return ms.ToArray(); + } } } } diff --git a/src/GBNewEnergy.Protocol/NEEncrypts/NE_AES128EncryptImpl_NetCore2.cs b/src/GBNewEnergy.Protocol/NEEncrypts/NEAES128EncryptImpl_NetCore2.cs similarity index 92% rename from src/GBNewEnergy.Protocol/NEEncrypts/NE_AES128EncryptImpl_NetCore2.cs rename to src/GBNewEnergy.Protocol/NEEncrypts/NEAES128EncryptImpl_NetCore2.cs index 67de7d0..125275a 100644 --- a/src/GBNewEnergy.Protocol/NEEncrypts/NE_AES128EncryptImpl_NetCore2.cs +++ b/src/GBNewEnergy.Protocol/NEEncrypts/NEAES128EncryptImpl_NetCore2.cs @@ -6,7 +6,7 @@ using System.Text; namespace GBNewEnergy.Protocol.NEEncrypts { - public class NE_AES128EncryptImpl_NetCore2 : INEEncrypt + public class NEAES128EncryptImpl_NetCore2 : INEEncrypt { private readonly NEGlobalConfigs _nEConfigs; @@ -15,12 +15,12 @@ namespace GBNewEnergy.Protocol.NEEncrypts /// private readonly static byte[] saltBytes = new byte[9] { 13, 34, 27, 67, 189, 255, 104, 219, 122 }; - public NE_AES128EncryptImpl_NetCore2(NEGlobalConfigs nEConfigs) + public NEAES128EncryptImpl_NetCore2(NEGlobalConfigs nEConfigs) { _nEConfigs = nEConfigs; } - public byte[] Eecrypt(byte[] buffer) + public byte[] Decrypt(byte[] buffer) { var iv = new byte[16]; var cipher = new byte[16]; diff --git a/src/GBNewEnergy.Protocol/NEEncrypts/NE_RSAEncryptImpl.cs b/src/GBNewEnergy.Protocol/NEEncrypts/NERSAEncryptImpl.cs similarity index 74% rename from src/GBNewEnergy.Protocol/NEEncrypts/NE_RSAEncryptImpl.cs rename to src/GBNewEnergy.Protocol/NEEncrypts/NERSAEncryptImpl.cs index 8a8172d..27118bd 100644 --- a/src/GBNewEnergy.Protocol/NEEncrypts/NE_RSAEncryptImpl.cs +++ b/src/GBNewEnergy.Protocol/NEEncrypts/NERSAEncryptImpl.cs @@ -5,16 +5,16 @@ using System.Text; namespace GBNewEnergy.Protocol.NEEncrypts { #warning 待加解密 - public class NE_RSAEncryptImpl : INEEncrypt + public class NERSAEncryptImpl : INEEncrypt { private readonly NEGlobalConfigs _nEConfigs; - public NE_RSAEncryptImpl(NEGlobalConfigs nEConfigs) + public NERSAEncryptImpl(NEGlobalConfigs nEConfigs) { _nEConfigs = nEConfigs; } - public byte[] Eecrypt(byte[] buffer) + public byte[] Decrypt(byte[] buffer) { throw new NotImplementedException(); } diff --git a/src/GBNewEnergy.Protocol/NEPackage.cs b/src/GBNewEnergy.Protocol/NEPackage.cs index 7175fba..a84e2b6 100644 --- a/src/GBNewEnergy.Protocol/NEPackage.cs +++ b/src/GBNewEnergy.Protocol/NEPackage.cs @@ -129,7 +129,7 @@ namespace GBNewEnergy.Protocol Array.Copy(Buffer, HeaderFixedByteLength, bodiesBytes, 0, bodiesBytes.Length); if (NEConfigs.Encrypt != null) { - Bodies = NEBodiesFactory.GetNEBodiesByMsgId(MsgId, NEConfigs.Encrypt.Eecrypt(bodiesBytes),NEConfigs); + Bodies = NEBodiesFactory.GetNEBodiesByMsgId(MsgId, NEConfigs.Encrypt.Decrypt(bodiesBytes),NEConfigs); } else { diff --git a/src/NEEncrypts.Tests/NEEncryptsNET4.Test/NEEncryptsNET4.Test.csproj b/src/NEEncrypts.Tests/NEEncryptsNET4.Test/NEEncryptsNET4.Test.csproj index 2badda2..3f609c2 100644 --- a/src/NEEncrypts.Tests/NEEncryptsNET4.Test/NEEncryptsNET4.Test.csproj +++ b/src/NEEncrypts.Tests/NEEncryptsNET4.Test/NEEncryptsNET4.Test.csproj @@ -43,5 +43,11 @@ + + + {1934f3a6-1396-46c2-bfd6-1e2dc1a26e3a} + GBNewEnergy.Protocol + + \ No newline at end of file diff --git a/src/NEEncrypts.Tests/NEEncryptsNET4.Test/Program.cs b/src/NEEncrypts.Tests/NEEncryptsNET4.Test/Program.cs index 7a26f1e..4ca66ac 100644 --- a/src/NEEncrypts.Tests/NEEncryptsNET4.Test/Program.cs +++ b/src/NEEncrypts.Tests/NEEncryptsNET4.Test/Program.cs @@ -1,9 +1,11 @@ -using System; +using GBNewEnergy.Protocol.NEEncrypts; +using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Security.Cryptography; using System.Text; +using GBNewEnergy.Protocol.Extensions; namespace NEEncryptsNET4.Test { @@ -11,39 +13,18 @@ namespace NEEncryptsNET4.Test { static void Main(string[] args) { - } - - public static byte[] AESEncryptBytes(byte[] bytesToBeEncrypted, byte[] passwordBytes) - { - byte[] encryptedBytes = null; - - var saltBytes = new byte[9] { 13, 34, 27, 67, 189, 255, 104, 219, 122 }; - - using (var ms = new MemoryStream()) - { - using (var AES = new RijndaelManaged()) + NEAES128EncryptImpl nE_AES128EncryptImpl = new NEAES128EncryptImpl( + new GBNewEnergy.Protocol.NEGlobalConfigs() { - AES.KeySize = 256; - AES.BlockSize = 128; - - var key = new Rfc2898DeriveBytes(passwordBytes, saltBytes, 1000); - AES.Key = key.GetBytes(32); - AES.IV = key.GetBytes(16); - - AES.Mode = CipherMode.CBC; - - using (var cs = new CryptoStream(ms, AES.CreateEncryptor(), - CryptoStreamMode.Write)) - { - cs.Write(bytesToBeEncrypted, 0, bytesToBeEncrypted.Length); - cs.Close(); - } - - encryptedBytes = ms.ToArray(); - } - } - - return encryptedBytes; + NEEncryptKey="smallchi" + }); + string str = "aaasssddd123"; + var bytes = Encoding.UTF8.GetBytes(str); + var encrypt=nE_AES128EncryptImpl.Encrypt(bytes); + Console.WriteLine("原数据:"+ str); + Console.WriteLine("加密后:"+ encrypt.ToHexString()); + Console.WriteLine("解密后:" + Encoding.UTF8.GetString(nE_AES128EncryptImpl.Decrypt(encrypt))); + Console.ReadKey(); } } } diff --git a/src/NEEncrypts.Tests/NEEncryptsNET45.Test/NEEncryptsNET45.Test.csproj b/src/NEEncrypts.Tests/NEEncryptsNET45.Test/NEEncryptsNET45.Test.csproj index d13b991..4772fa8 100644 --- a/src/NEEncrypts.Tests/NEEncryptsNET45.Test/NEEncryptsNET45.Test.csproj +++ b/src/NEEncrypts.Tests/NEEncryptsNET45.Test/NEEncryptsNET45.Test.csproj @@ -47,5 +47,11 @@ + + + {1934f3a6-1396-46c2-bfd6-1e2dc1a26e3a} + GBNewEnergy.Protocol + + \ No newline at end of file diff --git a/src/NEEncrypts.Tests/NEEncryptsNET45.Test/Program.cs b/src/NEEncrypts.Tests/NEEncryptsNET45.Test/Program.cs index a41c47c..59f7acc 100644 --- a/src/NEEncrypts.Tests/NEEncryptsNET45.Test/Program.cs +++ b/src/NEEncrypts.Tests/NEEncryptsNET45.Test/Program.cs @@ -1,4 +1,6 @@ -using System; +using GBNewEnergy.Protocol.Extensions; +using GBNewEnergy.Protocol.NEEncrypts; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -10,6 +12,18 @@ namespace NEEncryptsNET45.Test { static void Main(string[] args) { + NEAES128EncryptImpl nE_AES128EncryptImpl = new NEAES128EncryptImpl( + new GBNewEnergy.Protocol.NEGlobalConfigs() + { + NEEncryptKey = "smallchi" + }); + string str = "aaasssddd123"; + var bytes = Encoding.UTF8.GetBytes(str); + var encrypt = nE_AES128EncryptImpl.Encrypt(bytes); + Console.WriteLine("原数据:" + str); + Console.WriteLine("加密后:" + encrypt.ToHexString()); + Console.WriteLine("解密后:" + Encoding.UTF8.GetString(nE_AES128EncryptImpl.Decrypt(encrypt))); + Console.ReadKey(); } } } diff --git a/src/NEEncrypts.Tests/NEEncryptsNETCore.Test/NEEncryptsNETCore.Test.csproj b/src/NEEncrypts.Tests/NEEncryptsNETCore.Test/NEEncryptsNETCore.Test.csproj index 23df604..8062fb2 100644 --- a/src/NEEncrypts.Tests/NEEncryptsNETCore.Test/NEEncryptsNETCore.Test.csproj +++ b/src/NEEncrypts.Tests/NEEncryptsNETCore.Test/NEEncryptsNETCore.Test.csproj @@ -5,4 +5,8 @@ netcoreapp2.1 + + + + diff --git a/src/NEEncrypts.Tests/NEEncryptsNETCore.Test/Program.cs b/src/NEEncrypts.Tests/NEEncryptsNETCore.Test/Program.cs index bcec350..cfeeadb 100644 --- a/src/NEEncrypts.Tests/NEEncryptsNETCore.Test/Program.cs +++ b/src/NEEncrypts.Tests/NEEncryptsNETCore.Test/Program.cs @@ -1,4 +1,7 @@ -using System; +using GBNewEnergy.Protocol.NEEncrypts; +using GBNewEnergy.Protocol.Extensions; +using System; +using System.Text; namespace NEEncryptsNETCore.Test { @@ -6,7 +9,18 @@ namespace NEEncryptsNETCore.Test { static void Main(string[] args) { - Console.WriteLine("Hello World!"); + NEAES128EncryptImpl nE_AES128EncryptImpl = new NEAES128EncryptImpl( + new GBNewEnergy.Protocol.NEGlobalConfigs() + { + NEEncryptKey = "smallchi" + }); + string str =Guid.NewGuid().ToString("N"); + var bytes = Encoding.UTF8.GetBytes(str); + var encrypt = nE_AES128EncryptImpl.Encrypt(bytes); + Console.WriteLine("原数据:" + str); + Console.WriteLine("加密后:" + encrypt.ToHexString()); + Console.WriteLine("解密后:" + Encoding.UTF8.GetString(nE_AES128EncryptImpl.Decrypt(encrypt))); + Console.ReadKey(); } } }