ntminer 5 years ago
parent
commit
e0f273c9b5

+ 0 - 3
src/NTMinerDaemon/NTMinerDaemon.csproj

@@ -94,9 +94,6 @@
     <Compile Include="..\NTMinerClient\Windows\WMI.cs">
       <Link>Windows\WMI.cs</Link>
     </Compile>
-    <Compile Include="..\ntminerlib\cryptography\AESHelper.cs">
-      <Link>Cryptography\AESHelper.cs</Link>
-    </Compile>
     <Compile Include="..\ntminerlib\cryptography\BigInteger.cs">
       <Link>Cryptography\BigInteger.cs</Link>
     </Compile>

+ 1 - 10
src/NTMinerRpcClient/Services/Official/ClientDataService.cs

@@ -12,16 +12,7 @@ namespace NTMiner.Services.Official {
 
         #region QueryClientsAsync
         public void QueryClientsAsync(QueryClientsRequest query, Action<QueryClientsResponse, Exception> callback) {
-            RpcRoot.SignPostAsync(RpcRoot.OfficialServerHost, RpcRoot.OfficialServerPort, _controllerName, nameof(IClientDataController.QueryClients), data: query, callback: (QueryClientsResponse response, Exception e) => {
-                if (response != null && response.Data != null && response.Data.Count != 0) {
-                    foreach (var item in response.Data) {
-                        if (!string.IsNullOrEmpty(item.WindowsPassword)) {
-                            item.WindowsPassword = Cryptography.AESHelper.Decrypt(item.WindowsPassword, Cryptography.AESHelper.ConvertToKey(RpcRoot.RpcUser.Password));
-                        }
-                    }
-                }
-                callback?.Invoke(response, e);
-            });
+            RpcRoot.SignPostAsync(RpcRoot.OfficialServerHost, RpcRoot.OfficialServerPort, _controllerName, nameof(IClientDataController.QueryClients), data: query, callback);
         }
         #endregion
 

+ 1 - 1
src/NTMinerServer/ServerContext.cs

@@ -55,7 +55,7 @@ namespace NTMiner {
                 DateTime startOn = DateTime.Now;
                 bool isTimeout = false;
                 while (!mqMessagePaths.All(a => a.IsReadyToBuild)) {
-                    if (startOn.AddSeconds(10) < DateTime.Now) {
+                    if (startOn.AddSeconds(20) < DateTime.Now) {
                         isTimeout = true;
                         break;
                     }

+ 0 - 59
src/NTMinerlib/Cryptography/AESHelper.cs

@@ -1,59 +0,0 @@
-using System.Security.Cryptography;
-using System.Text;
-using System.Linq;
-
-namespace NTMiner.Cryptography {
-    public static partial class AESHelper {
-        private const int keySize = 128;
-        public const int KeyLen = keySize / 8;
-
-        public static string ConvertToKey(string str) {
-            if (string.IsNullOrEmpty(str)) {
-                str = new string(Enumerable.Repeat('0', KeyLen).ToArray());
-            }
-            if (str.Length < 16) {
-                str += new string(Enumerable.Repeat('0', KeyLen - str.Length).ToArray());
-            }
-            if (str.Length > 16) {
-                return str.Substring(0, 16);
-            }
-            return str;
-        }
-
-        /// <summary>
-        /// 返回经过base64编码的字符串
-        /// </summary>
-        /// <param name="toEncrypt"></param>
-        /// <param name="key"></param>
-        /// <returns></returns>
-        public static string Encrypt(string toEncrypt, string key) {
-            var keyArray = Encoding.UTF8.GetBytes(key);
-            var toEncryptArray = Encoding.UTF8.GetBytes(toEncrypt);
-            using (var acsp = new AesCryptoServiceProvider { KeySize = keySize, BlockSize = keySize }) {
-                acsp.GenerateIV();
-                using (var aes = new AesCryptoServiceProvider { Key = keyArray, IV = acsp.IV, Mode = CipherMode.ECB, Padding = PaddingMode.PKCS7 }) {
-                    byte[] resultArray;
-                    using (var cTransform = aes.CreateEncryptor()) {
-                        resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
-                    }
-                    return System.Convert.ToBase64String(resultArray);
-                }
-            }
-        }
-
-        public static string Decrypt(string base64String, string key) {
-            var keyArray = Encoding.UTF8.GetBytes(key);
-            var toDecryptArray = System.Convert.FromBase64String(base64String);
-            using (var acsp = new AesCryptoServiceProvider { KeySize = keySize, BlockSize = keySize }) {
-                acsp.GenerateIV();
-                using (var aes = new AesCryptoServiceProvider { Key = keyArray, IV = acsp.IV, Mode = CipherMode.ECB, Padding = PaddingMode.PKCS7 }) {
-                    byte[] resultArray;
-                    using (var cTransform = aes.CreateDecryptor()) {
-                        resultArray = cTransform.TransformFinalBlock(toDecryptArray, 0, toDecryptArray.Length);
-                    }
-                    return Encoding.UTF8.GetString(resultArray);
-                }
-            }
-        }
-    }
-}

+ 1 - 1
src/NTMinerlib/Cryptography/AESHelper.partials.cs

@@ -1,7 +1,7 @@
 namespace NTMiner.Cryptography {
     public static partial class AESHelper {
         public static string GetRandomPassword() {
-            return VirtualRoot.GetRandomString(KeyLen);
+            return VirtualRoot.GetRandomString(16);
         }
 
     }

+ 0 - 1
src/NTMinerlib/NTMinerlib.csproj

@@ -43,7 +43,6 @@
   <ItemGroup>
     <Compile Include="AppSetting\LocalAppSettingSet.cs" />
     <Compile Include="AppSetting\IAppSettingSet.cs" />
-    <Compile Include="Cryptography\AESHelper.cs" />
     <Compile Include="Cryptography\AESHelper.partials.cs" />
     <Compile Include="Cryptography\BigInteger.cs" />
     <Compile Include="Cryptography\RSAKey.cs" />

+ 0 - 24
src/UnitTests/CryptographyTests.cs

@@ -26,14 +26,6 @@ namespace NTMiner {
             Assert.AreEqual(text, RSAHelper.DecryptString(RSAHelper.EncryptString(text, key.PrivateKey), key.PublicKey));
         }
 
-        [TestMethod]
-        public void WindowsPasswordTest() {
-            string windowsPassword = HashUtil.EncDecInOne("ntminer");
-            string text = AESHelper.Encrypt(windowsPassword, AESHelper.ConvertToKey(HashUtil.Sha1("this is a test")));
-            string text1 = AESHelper.Decrypt(text, AESHelper.ConvertToKey(HashUtil.Sha1("this is a test")));
-            Assert.AreEqual(windowsPassword, text1);
-        }
-
         // 注意RSA的性能很慢,只能用于加密AES密码,然后大规模加密使用AES
         [TestMethod]
         public void RSABenchmarkTest() {
@@ -51,22 +43,6 @@ namespace NTMiner {
             Console.WriteLine(elapsedMilliseconds);
         }
 
-        [TestMethod]
-        public void AESBenchmarkTest() {
-            int n = 10000;
-            List<string> messages = new List<string>();
-            for (int i = 0; i < n; i++) {
-                messages.Add(Guid.NewGuid().ToString());
-            }
-            string password = "1234567812345678";
-            NTStopwatch.Start();
-            foreach (var message in messages) {
-                AESHelper.Encrypt(message, password);
-            }
-            var elapsedMilliseconds = NTStopwatch.Stop();
-            Console.WriteLine(elapsedMilliseconds);
-        }
-
         [TestMethod]
         public void Sha1BenchmarkTest() {
             int n = 10000;

+ 5 - 5
src/WebApiServer/Controllers/ClientDataController.cs

@@ -24,11 +24,11 @@ namespace NTMiner.Controllers {
                     out List<CoinSnapshotData> latestSnapshots, 
                     out int totalOnlineCount, 
                     out int totalMiningCount) ?? new List<ClientData>();
-                foreach (var item in data) {
-                    if (!string.IsNullOrEmpty(item.WindowsPassword)) {
-                        item.WindowsPassword = Cryptography.AESHelper.Encrypt(item.WindowsPassword, Cryptography.AESHelper.ConvertToKey(user.Password));
-                    }
-                }
+                //foreach (var item in data) {
+                //    if (!string.IsNullOrEmpty(item.WindowsPassword)) {
+                //        item.WindowsPassword = Cryptography.AESHelper.Encrypt(item.WindowsPassword, Cryptography.AESHelper.ConvertToKey(user.Password));
+                //    }
+                //}
                 return QueryClientsResponse.Ok(data, total, latestSnapshots, totalMiningCount, totalOnlineCount);
             }
             catch (Exception e) {