private void RegiterBtn_Click(object sender, EventArgs e) { connectionString = ConfigurationManager.ConnectionStrings["LoginSystemWithRSA"].ConnectionString; using (SqlConnection con = new SqlConnection(connectionString)) { string userName = UserNameTextbox.Text; string password = UserNameTextbox.Text; string email = EmailTextbox.Text; #region for first RSA // For Encrypted password // var rsaEnc = new RSAConfiguration(); // var encryptedPassword = rsaEnc.Encrypt(password); // // var encryptedPassword = AESConfiguration.Encrypt(password); // For AES #endregion #region For msdn RSACSPSample byte[] dataToEncrypt = Encoding.ASCII.GetBytes(password); string hashPassword = string.Empty; using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider()) { var encryptedData = RSACSPSample.RSAEncrypt(dataToEncrypt, RSA.ExportParameters(false), false); hashPassword = BitConverter.ToString(encryptedData); } #endregion string query = "insert into tblUserRegistration values('" + userName + "', '" + hashPassword + "', '" + email + "')"; SqlCommand cmd = new SqlCommand(query, con); try { con.Open(); var count = cmd.ExecuteNonQuery(); if (count > 0) { MessageBox.Show("Insert Successfully!"); } else { MessageBox.Show("Unsuccessfully operation!"); } } catch (Exception ex) { MessageBox.Show("Exception thrown: " + ex.Message); } finally { con.Close(); } } }
static void Main(string[] args) { // 使用 DSACryptoServiceProvider 类创建哈希值的数字签名,然后验证签名。 DSACSPSample.DoTest(); // 使用 RSACryptoServiceProvider 类将一个字符串加密为一个字节数组,然后将这些字节解密为字符串。 RSACSPSample.DoTest(); Console.ReadLine(); }
private void SignInBtn_Click(object sender, EventArgs e) { var userName = UserNameTextbox.Text; var password = PasswordTextBox.Text; //// For Encrypted password //var rsaEnc = new RSAConfiguration(); connectionString = ConfigurationManager.ConnectionStrings["LoginSystemWithRSA"].ConnectionString; using (SqlConnection con = new SqlConnection(connectionString)) { string query = "select * from tblUserRegistration where UserName = '******'"; SqlCommand cmd = new SqlCommand(query, con); try { con.Open(); var reader = cmd.ExecuteReader(); if (reader != null) { int count = 0; while (reader.Read()) { string tempPass = reader["Password"].ToString(); string unhashPassword = string.Empty; #region For msdn RSACSPSample string tempPassword = reader["Password"].ToString(); var dataToEncrypt = Encoding.ASCII.GetBytes(tempPassword); using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider()) { var decryptedData = RSACSPSample.RSADecrypt(dataToEncrypt, RSA.ExportParameters(true), false); unhashPassword = BitConverter.ToString(decryptedData); } #endregion if (unhashPassword == password) { count++; break; } } if (count > 0) { var homePage = new HomePage(); homePage.ShowDialog(); } else { MessageBox.Show("Invalid username or password!"); } } reader.Close(); } catch (Exception ex) { MessageBox.Show("Exception occured: " + ex); } finally { con.Close(); } } }