diff --git a/src/GBNewEnergy.Protocol/GBNewEnergy.Protocol.csproj b/src/GBNewEnergy.Protocol/GBNewEnergy.Protocol.csproj index 58b2083..09a6046 100644 --- a/src/GBNewEnergy.Protocol/GBNewEnergy.Protocol.csproj +++ b/src/GBNewEnergy.Protocol/GBNewEnergy.Protocol.csproj @@ -9,6 +9,8 @@ + + diff --git a/src/GBNewEnergy.Protocol/NEEncryptFactory.cs b/src/GBNewEnergy.Protocol/NEEncryptFactory.cs index 029b40a..cf18c6a 100644 --- a/src/GBNewEnergy.Protocol/NEEncryptFactory.cs +++ b/src/GBNewEnergy.Protocol/NEEncryptFactory.cs @@ -17,11 +17,7 @@ namespace GBNewEnergy.Protocol case NEEncryptMethod.Exception: return null; case NEEncryptMethod.AES128: -#if NETCOREAPP2_1 - return new NE_AES128EncryptImpl_NetCore2(nEConfigs); -#else - return new NEAES128EncryptImpl(nEConfigs); -#endif + return new NEAES128EncryptImpl(nEConfigs); case NEEncryptMethod.RSA: return new NERSAEncryptImpl(nEConfigs); default: diff --git a/src/GBNewEnergy.Protocol/NEEncrypts/NEAES128EncryptImpl.cs b/src/GBNewEnergy.Protocol/NEEncrypts/NEAES128EncryptImpl.cs index 6120c82..8508e70 100644 --- a/src/GBNewEnergy.Protocol/NEEncrypts/NEAES128EncryptImpl.cs +++ b/src/GBNewEnergy.Protocol/NEEncrypts/NEAES128EncryptImpl.cs @@ -21,22 +21,17 @@ namespace GBNewEnergy.Protocol.NEEncrypts } public byte[] Encrypt(byte[] buffer) - { - using (var ms = new MemoryStream()) + { + using (Aes encryptor = Aes.Create()) { - using (var AES = new RijndaelManaged()) - { - AES.KeySize = 256; - AES.BlockSize = 128; - var key = new Rfc2898DeriveBytes(_nEConfigs.NEEncryptKeyBytes, 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(buffer, 0, buffer.Length); - cs.Close(); - } + Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(_nEConfigs.NEEncryptKey, saltBytes); + encryptor.Key = pdb.GetBytes(32); + encryptor.IV = pdb.GetBytes(16); + using (MemoryStream ms = new MemoryStream()) + using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateEncryptor(),CryptoStreamMode.Write)) + { + cs.Write(buffer, 0, buffer.Length); + cs.Close(); return ms.ToArray(); } } @@ -44,22 +39,19 @@ namespace GBNewEnergy.Protocol.NEEncrypts public byte[] Decrypt(byte[] buffer) { - using (var ms = new MemoryStream()) - using (var AES = new RijndaelManaged()) + using (Aes encryptor = Aes.Create()) { - AES.KeySize = 256; - AES.BlockSize = 128; - var key = new Rfc2898DeriveBytes(_nEConfigs.NEEncryptKeyBytes, saltBytes, 1000); - AES.Key = key.GetBytes(32); - AES.IV = key.GetBytes(16); - AES.Mode = CipherMode.CBC; - using (var cs = new CryptoStream(ms, AES.CreateDecryptor(), CryptoStreamMode.Write)) - { - cs.Write(buffer, 0, buffer.Length); - cs.Close(); - } + Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(_nEConfigs.NEEncryptKey, saltBytes); + encryptor.Key = pdb.GetBytes(32); + encryptor.IV = pdb.GetBytes(16); + using (MemoryStream ms = new MemoryStream()) + using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateDecryptor(),CryptoStreamMode.Write)) + { + cs.Write(buffer, 0, buffer.Length); + cs.Close(); return ms.ToArray(); - } + } + } } } } diff --git a/src/GBNewEnergy.Protocol/NEGlobalConfigs.cs b/src/GBNewEnergy.Protocol/NEGlobalConfigs.cs index fca9978..09ed2bb 100644 --- a/src/GBNewEnergy.Protocol/NEGlobalConfigs.cs +++ b/src/GBNewEnergy.Protocol/NEGlobalConfigs.cs @@ -12,10 +12,6 @@ namespace GBNewEnergy.Protocol /// public string NEEncryptKey { get; set; } /// - /// 密钥 - /// - public byte[] NEEncryptKeyBytes => Encoding.UTF8.GetBytes(NEEncryptKey); - /// /// 数据单元加密方式 /// 0x01:数据不加密;0x02:数据经过 RSA 算法加密;0x03:数据经过 AES128 位算法加密;“0xFE”表示异常,“0xFF”表示无效 /// diff --git a/src/NEEncrypts.Tests/NEEncryptsNETCore.Test/Program.cs b/src/NEEncrypts.Tests/NEEncryptsNETCore.Test/Program.cs index cfeeadb..1fad826 100644 --- a/src/NEEncrypts.Tests/NEEncryptsNETCore.Test/Program.cs +++ b/src/NEEncrypts.Tests/NEEncryptsNETCore.Test/Program.cs @@ -14,12 +14,12 @@ namespace NEEncryptsNETCore.Test { NEEncryptKey = "smallchi" }); - string str =Guid.NewGuid().ToString("N"); + string str ="aaaaaa111111"; 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.WriteLine("解密后:" + Encoding.ASCII.GetString(nE_AES128EncryptImpl.Decrypt(encrypt))); Console.ReadKey(); } }