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();
                }
            }
        }
Beispiel #2
0
        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();
                }
            }
        }