2017-10-16 12 views
-5

登録フォームのパスワードを暗号化してmysqlに送信するにはどうすればよいですか?それは、ユーザー名とパスワードと一致した場合、私にここで 生成された暗号化されたパスワードをC#からMySQLに送信する方法

string input_fname = textBox1.Text; 
     string input_mname = textBox2.Text; 
     string input_lname = textBox3.Text; 
     string input_address = textBox6.Text; 
     string input_age = textBox5.Text; 
     string input_password = getMD5(textBox4.Text); 

     // establishing connection 
     MySqlConnectionStringBuilder builder = new MySqlConnectionStringBuilder(); 
     builder.Server = "127.0.0.1"; 
     builder.UserID = "root"; 
     builder.Password = "seven7"; 
     builder.Database = "justsing"; 
     MySqlConnection connection = new MySqlConnection(builder.ToString()); 
     connection.Open(); 

     // sql command 
     string newuser_sql = "INSERT INTO `justsing`.`karaokeadmin` (`FirstName`, `MiddleName`, `LastName`, `Address`, `Age`, `password`) VALUES (@FirstName,@MiddleName,@LastName,@Address,@Age,@password)"; 
     MySqlCommand newuser = new MySqlCommand(newuser_sql, connection); 
     newuser.CommandText = newuser_sql; 
     newuser.Parameters.AddWithValue("@FirstName", input_fname); 
     newuser.Parameters.AddWithValue("@MiddleName", input_mname); 
     newuser.Parameters.AddWithValue("@LastName", input_lname); 
     newuser.Parameters.AddWithValue("@Address", input_address); 
     newuser.Parameters.AddWithValue("@Age", input_age); 
     newuser.Parameters.AddWithValue("@password", input_password); 
     newuser.ExecuteNonQuery(); 
     MessageBox.Show("Inserted Succesfully"); 
    } 
    public string getMD5(string text) 
    { 
     MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); 
     md5.ComputeHash(ASCIIEncoding.ASCII.GetBytes(text)); 
     byte[] result = md5.Hash; 
     StringBuilder str = new StringBuilder(); 
     for (int i = 0; i < result.Length; i++) 
     { 
      str.Append(result[i].ToString("X2")); 
     } 
     return str.ToString(); 
    } 
} 

が検証上のログインコードであるいくつかの例を表示 これを行うための標準的な方法はであなたのAPIにフォームからそれを送信することです

private void button5_Click(object sender, EventArgs e) 
    { 
     string lname = textBox7.Text; 
     string pass = textBox8.Text; 
     if (lname == "" || pass == "") 
     { 
      MessageBox.Show("Empty Fields Detected ! Please fill up all the fields"); 
     } 
     bool r = validate_login(lname, pass); 
     if (r) 
     { 
      JustSingAdminControlPanel js = new JustSingAdminControlPanel(); 
      js.Show(); 
     } 
     //code kung ano gustong buksan 
     else 
     { 
      MessageBox.Show("Wrong Input"); 
     } 
    } 
+0

私たちに正確に何を試してみたのか、どこに問題があるのか​​を教えてください。 – spodger

+0

ここから始めて、それは始まりです:https://www.codeproject.com/Articles/704865/Salted-Password-Hashing-Doing-it-Right – Stefan

+0

私はMD5を使ってみましたが、その後私はstackoverflow MD5の一部を読むことができませんでした復号化され...片方向のハッシュです –

答えて

0

cleartext(ただしHTTPSを使用しますが、これは必須です)、バックエンドでハッシュします(これを行う方法については別途問題があります)。最後にそのハッシュをMYSQLデータベースに保存します。パスワードを暗号化する必要はなく、ハッシュする必要があります。

+0

ここではmd5 clssについて読むことができますhttps://msdn.microsoft.com/library/system.security.cryptography.md5(v=vs.110).aspx – Gianlucca

+2

@Gianlucca MD5 - https:// securityを使用しないでください.stackexchange.com/questions/19906/is-md5-considered-insecure – Smartis

+1

@smartis私はそれらの悪用について全く知らなかった。ありがとうございました! – Gianlucca

関連する問題