Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pedroalves

[Resolvido] problemas com md5

Recommended Posts

não estou a conseguir fazer a incriptação em md5 +salt

o salt ainda não o pus

segue-se o codigo

using System;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using Shared.User;
using Client;
using System.Security.Cryptography;
using System.Text;

namespace Client
{

   public partial class Logon : Form
   {
       //Logon Instance { get; set; }
       public Logon()
       {
           InitializeComponent();
       }
           static string GetMd5Hash(MD5 md5Hash, string input)
       {

           // Convert the input string to a byte array and compute the hash.
           byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(input));

           // Create a new Stringbuilder to collect the bytes
           // and create a string.
           StringBuilder sBuilder = new StringBuilder();

           // Loop through each byte of the hashed data 
           // and format each one as a hexadecimal string.
           for (int i = 0; i < data.Length; i++)
           {
               sBuilder.Append(data[i].ToString("x2"));
           }

           // Return the hexadecimal string.
           return sBuilder.ToString();
       }

       // Verify a hash against a string.
       static bool VerifyMd5Hash(MD5 md5Hash, string input, string hash)
       {
           // Hash the input.
           string hashOfInput = GetMd5Hash(md5Hash, input);

           // Create a StringComparer an compare the hashes.
           StringComparer comparer = StringComparer.OrdinalIgnoreCase;

           if (0 == comparer.Compare(hashOfInput, hash))
           {
               return true;
           }
           else
           {
               return false;
           }
       }



       private void LoginBtnClick(object sender, EventArgs e)
       {
           using (MD5 md5Hash = MD5.Create())
           {
               string hash = GetMd5Hash(md5Hash, textBox1.Text.Trim());

               Console.WriteLine("The MD5 hash of " +textBox1.Text.Trim() + " is: " + hash + ".");

               Console.WriteLine("Verifying the hash...");

               if (VerifyMd5Hash(md5Hash, textBox1.Text.Trim(), hash))
               {
                   Console.WriteLine("The hashes are the same.");
               }
               else
               {
                   Console.WriteLine("The hashes are not same.");
               }
           }

            MySqlConnection con = new MySqlConnection("host=localhost;user=root;database=Accounts");
            try
            {
                MySqlCommand cmd = new MySqlCommand("SELECT tipo FROM user WHERE username  = '" + usernameTxt.Text.Replace("'", "") + "' AND password = '" + textBox1.Text.Replace("'", "") + "' ");
                cmd.Connection = con;
                con.Open();
                object Tipo = cmd.ExecuteScalar();
                if (Tipo != null && Tipo != DBNull.Value)
                {

                    switch (System.Convert.ToInt32(Tipo))
                    {
                        case 1:
                       //    Form1 ola = new Form1();
                      //  ola.Show();


                       //  Hide();
                    new Client(usernameTxt.Text.Trim(), this).Show();
                           Hide();
                            break;
                        case 2:
                            MessageBox.Show("GAME MASTER");
                            break;
                        case 3:
                            MessageBox.Show("Moderador");
                            break;
                        case 4:
                            MessageBox.Show("VIP");
                            break;
                        case 5:
                            MessageBox.Show("Membro");
                            break;
                        case 6:
                            MessageBox.Show("Registo nao foi Activado");
                            break;
                        case 7:
                            MessageBox.Show("O Utilizador foi banido\n Contacte a Equipa atravez do suporte para saber a razão pelo qual foi banido(a)");
                            break;
                    }




                }
                else
                {
                    MessageBox.Show("Usuario ou Senha incorretos");
                }
            }
            catch (MySqlException msqle)
            {
                MessageBox.Show("Erro de acesso ao MySQL : " +
           msqle.Message, "Erro");
            }
           }

       private void UsernameTxtKeyPress(object sender, KeyPressEventArgs e)
       {
           if (e.KeyChar == (char)Keys.Enter)
               loginBtn.PerformClick(); //Perform Login button click if enter is pressed
       }

       internal static void Exit()
       {
           Application.Exit();
       }

       private void button1_Click(object sender, EventArgs e)
       {
           Application.Exit();
       }
   }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.