private void bRegister_Click(object sender, EventArgs e) { ServerProvider.Instance.ConnectCheck(); if (CheckRegisterParam()) { RegistrationInfo info = new RegistrationInfo(); info.Login = tbLogin.Text; info.PasswordHash = tbPassword.Text.ToSha256(); info.EMail = tbEMail.Text; ProofHelper.SetProof(info); try { var res = ServerProvider.Instance.Register(info); if (res.IsSuccess) { MessageBox.Show("Регистрация прошла успешно!", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); DialogResult = DialogResult.OK; } else { MessageBox.Show(string.Format("Ошибка регистрации: {0}", res.Message), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ex) { MessageBox.Show(string.Format("Ошибка регистрации: {0}", ex.MessageExt()), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } }
public static void SetProof(RegistrationInfo info) { string s = string.Format("{0}{1}{2}", info.Login, info.PasswordHash, info.EMail); long nonce = -1; for (int i = 0; i < int.MaxValue; i++) { if (string.Format("{0}{1}", s, i).ToSha256().StartsWith("0000")) { nonce = i; break; } } if (nonce >= 0) { info.Nonce = nonce; info.ProofOfWork = string.Format("{0}{1}", s, nonce).ToSha256(); } }
public OperationResult Register(RegistrationInfo info) { return _client.RunCommand<RegistrationInfo, OperationResult>(101, info); }