private void btnCalcManual_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txtQ.Text) || string.IsNullOrEmpty(txtP.Text)) { MessageBox.Show("Giá trị Q và P không được bỏ trống ", "Lỗi nhập tham sô đầu vào", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } Int64 numberP = 0, numberQ = 0; string inputP = txtP.Text, inputQ = txtQ.Text; if (!Int64.TryParse(inputP, out numberP) || numberP <= 0 || !Rsa.IsPrimeNumber(numberP)) { MessageBox.Show("Giá trị P không hợp lệ. P phải là số nguyên tố.", "Lỗi nhập tham sô đầu vào", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (!Int64.TryParse(inputQ, out numberQ) || numberQ <= 0 || !Rsa.IsPrimeNumber(numberQ)) { MessageBox.Show("Giá trị Q không hợp lệ. Q phải là số nguyên tố.", "Lỗi nhập tham sô đầu vào", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (numberP == numberQ) { MessageBox.Show("Giá trị Q và P không được trùng nhau.", "Lỗi nhập tham sô đầu vào", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } try { _rsaObject = new Rsa(numberP, numberQ); _rsaObject.GeneralKeys(); //txtP.Text = _rsaObject.FistPrime.ToString(); //txtQ.Text = _rsaObject.SecondPrime.ToString(); txtN.Text = _rsaObject.Modulus.ToString(); txtE.Text = _rsaObject.PublicExponent.ToString(); txtD.Text = _rsaObject.PrivateExponent.ToString(); txtEuler.Text = _rsaObject.Euler.ToString(); btnExportKey.Enabled = true; } catch (Exception ex) { MessageBox.Show("Giá trị tính toán quá lớn hoặc thông sô đầu vào không hợp lệ. " + ex.Message, "Lỗi trong quá trình tính toán", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } }
private void btnCalcN_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txtQ.Text) || string.IsNullOrEmpty(txtP.Text)) { MessageBox.Show("Giá trị Q và P không được bỏ trống ", "Lỗi nhập tham sô đầu vào", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } Int64 numberP = 0, numberQ = 0; string inputP = txtP.Text, inputQ = txtQ.Text; if (!Int64.TryParse(inputP, out numberP) || numberP <= 0 || !Rsa.IsPrimeNumber(numberP)) { MessageBox.Show("Giá trị P không hợp lệ. P phải là số nguyên tố.", "Lỗi nhập tham sô đầu vào", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (!Int64.TryParse(inputQ, out numberQ) || numberQ <= 0 || !Rsa.IsPrimeNumber(numberQ)) { MessageBox.Show("Giá trị Q không hợp lệ. Q phải là số nguyên tố.", "Lỗi nhập tham sô đầu vào", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (numberP == numberQ) { MessageBox.Show("Giá trị Q và P không được trùng nhau.", "Lỗi nhập tham sô đầu vào", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } var numberN = Rsa.CalculatePublicModule(numberP, numberQ); if (numberN <= 0) { MessageBox.Show("Giá trị tính toán quá lớn hoặc thông sô đầu vào không hợp lệ.", "Lỗi trong quá trình tính toán", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } txtEuler.Text = Rsa.CalculateEuler(Convert.ToInt64(txtP.Text), Convert.ToInt64(txtQ.Text)).ToString(); txtN.Text = numberN.ToString(); btnCalcE.Enabled = true; btnCalcD.Enabled = false; }