/// <summary> 检查注册.</summary> /// <remarks> windawings, 11/30/2015.</remarks> /// <returns> 是否注册成功.</returns> public bool CheckRegisterAgain() { try { if (!string.IsNullOrEmpty(Info.Register) && !string.IsNullOrEmpty(Info.SerialNumber)) { var time = Convert.ToInt64((new FileInfo(DataName).CreationTime - StartTime).TotalMilliseconds).ToString(); //验证激活码 if (time.Equals(Info.FileDate) && VerifyData(Info.Register, Info.SerialNumber)) { var info = (FormRegister.RegisterInfo) JsonConvert.DeserializeObject( ClassEncrypt.Decrypt(Convert.FromBase64String(Info.Register)), typeof(FormRegister.RegisterInfo)); CurrentUserId = info.UserCode; return(true); } } return(false); } catch (Exception) { return(false); } }
public FormRegister(ClassRegister register, bool login) { if (login) { InitializeComponent(); Register = register; //获取已注册学号信息 if (String.IsNullOrEmpty(Register.CurrentUserId)) { _textBoxStuNo.Text = Register.Info.Sno; } else { _textBoxStuNo.Text = Register.CurrentUserId; } //获取机器码 if (String.IsNullOrEmpty(Register.Info.Register) == false) { var plainStr = ClassEncrypt.Decrypt(Convert.FromBase64String(Register.Info.Register)); var jsonObject = (RegisterInfo)JsonConvert.DeserializeObject(plainStr, typeof(RegisterInfo)); if (jsonObject.UserCode.Equals(Register.Info.Sno)) { _textBoxSerialNumber.Text = Register.Info.Register; //获取激活码 if (Register.Info.IsRegistered) { _textBoxSinature.Text = Register.Info.SerialNumber; _textBoxSinature.ReadOnly = true; _labelTimeLeftValue.Text = Register.Info.TimeLeft + " 秒"; } } else { _buttonCancel.Enabled = false; } } } else { MessageBox.Show("请先完成网页登陆!"); Dispose(); } }
/// <summary> 使用公钥验证签名.</summary> /// <remarks> Windawings, 11/25/2015.</remarks> /// <param name="originalDataStr"> The signature string.</param> /// <param name="dataStr"> The serial number string.</param> /// <returns> true if it succeeds, false if it fails.</returns> public static bool VerifyData(string originalDataStr, string dataStr) { try { var orginalDataBytes = Encoding.UTF8.GetBytes(originalDataStr); var signJsonStr = ClassEncrypt.Decrypt(Convert.FromBase64String(dataStr)); var signParam = (SignatureParameters)JsonConvert.DeserializeObject(signJsonStr, typeof(SignatureParameters)); return(EcDsaSigner.VerifySignature( orginalDataBytes, new BigInteger(signParam.R), new BigInteger(signParam.S) )); } catch (Exception ex) { return(false); } }