Пример #1
0
        private void btnFileSave2_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrWhiteSpace(tbPath.Text))
            {
                WarningNotice.InputString();
                return;
            }
            if (!File.Exists(tbPath.Text))
            {
                WarningNotice.NotFound();
                return;
            }
            if (tbPassword.Text.Length != 8)
            {
                WarningNotice.KeyLength(8);
                return;
            }
            if (tbIV.Text.Length != 8)
            {
                WarningNotice.IVLength(8);
                return;
            }
            if (DialogResult.OK == sfdFile.ShowDialog())
            {
                FileInfo file   = new FileInfo(tbPath.Text);
                FileInfo result = new FileInfo(sfdFile.FileName);
                fileSize = file.Length;

                Task.Factory.StartNew(() =>
                {
                    try
                    {
                        ControlEnable(this.Controls, false);
                        DESEncryption.Decrypt(file, result, tbPassword.Text, tbIV.Text);
                        this.Invoke(new Action(() => WarningNotice.Save()));
                    }
                    catch (Exception)
                    {
                        WarningNotice.WrongKey();
                    }
                    finally
                    {
                        ControlEnable(this.Controls, true);
                    }
                });
            }
            sfdFile.FileName = "";
        }
Пример #2
0
 private void btnDecrypt_Click(object sender, EventArgs e)
 {
     if (tbPassword.Text.Length != 8)
     {
         WarningNotice.KeyLength(8);
         return;
     }
     if (tbIV.Text.Length != 8)
     {
         WarningNotice.IVLength(8);
         return;
     }
     try
     {
         tbToText.Text = DESEncryption.Decrypt(tbFromText.Text, tbPassword.Text, tbIV.Text);
     }
     catch (Exception)
     {
         WarningNotice.WrongKey();
     }
 }
Пример #3
0
        private IEnumerator StartLoadServerList(string url)
        {
            StatusStr = string.Format("开始加载服务器列表 {0}/{1}", mRetryCnt, GlobalConst.Update.RetryTimes);
            Logger.Net.Log(StatusStr);

            bool  timeout     = false;
            float elapsedTime = 0.0f;
            var   www         = new WWW(url);

            yield return(www);

            while (!www.isDone)
            {
                elapsedTime += Time.deltaTime;
                if (elapsedTime >= GlobalConst.Update.Timeout)
                {
                    timeout = true;
                    break;
                }
                yield return(new WaitForFixedUpdate());
            }

            if (!string.IsNullOrEmpty(www.error) || timeout)
            {
                if (mRetryCnt++ < GlobalConst.Update.RetryTimes)
                {
                    float fWaitTime = mRetryCnt * 2 + 1;

                    StatusStr = string.Format("加载列表失败,Err:{0},{1}秒后重试",
                                              timeout?"超时":www.error,
                                              (int)fWaitTime);
                    Logger.Net.Log(StatusStr);

                    yield return(new WaitForSeconds(fWaitTime));

                    yield return(StartCoroutine(StartLoadServerList(url)));
                }
                else
                {
                    Error     = true;
                    StatusStr = string.Format("加载列表失败,Err:{0}", timeout ? "超时" : www.error);
                    Logger.Net.LogError(StatusStr);
                }
                yield break;
            }

            var decText = www.text;

#if !DISABLE_ENCRYPT_FILES && !UNITY_EDITOR
            decText = DESEncryption.Decrypt(decText, GlobalConst.Res.EncryptPassword);
#endif
            var strs = decText.Split(',');
            if (strs.Length > 1)
            {
                StatusStr = string.Format("列表获取成功,可用节点数:{0},开始检测网络", strs.Length);
                Logger.Net.Log(StatusStr);

                foreach (var str in strs)
                {
                    mNodes.Add(new ServerNode(str));
                }

                PingAll();
            }
        }