Decrypter un mot de passe

Résolu
theflayer Messages postés 125 Date d'inscription dimanche 28 février 2010 Statut Membre Dernière intervention 21 juin 2015 - 24 juil. 2012 à 17:34
theflayer Messages postés 125 Date d'inscription dimanche 28 février 2010 Statut Membre Dernière intervention 21 juin 2015 - 25 juil. 2012 à 10:11
Salut salut ,

je me suis mis à Mysql sur C# avec le driver C# de Mysql et je bloque sur un petit soucis, je pense ne pas être loin (je pense).

En faite j'enregistre dans ma BDD un mot de passe crypter, pas de soucis, par contre dans le sens inverse c'est plus délicat. voici ma fonction :


        private void Lister(string sFiltre, string sValeur)
        {   //fonction rechercher users
            dataGridView1.Visible = true;

            string sMyConnSQL = "SERVER=localhost;DATABASE=inventory;UID=root;PASSWORD=info;";

            MySqlConnection connection = new MySqlConnection(sMyConnSQL);
            MySqlDataAdapter MyAdapter = new MySqlDataAdapter();
            DataSet ds = new DataSet();
            connection.ConnectionString = sMyConnSQL;

            connection.Open();

            if (sFiltre == "")
            {
                string cmd = "SELECT users.Identifiant, Prenom, Nom, Etage, Ip, Poste, poste.Materiel, Mdp_Systeme, Mdp_Zimbra FROM users ";
                cmd +"INNER JOIN mdp ON(users.Identifiant mdp.Identifiant) ";
                cmd +"INNER JOIN poste ON(users.Identifiant poste.Identifiant) ";

                MyAdapter.SelectCommand = new MySqlCommand(cmd, connection);
                MyAdapter.Fill(ds);

                dataGridView1.DataSource = ds.Tables[0]; 

string valu = (string)dataGridView1.Rows[2].Cells[8].Value;
MessageBox.Show(valu);
dataGridView1.Rows[2].Cells[8].Value = UnprotectPassword(valu);
                dataGridView1.Refresh();
            }
            else
            {
                string cmd = "SELECT users.Identifiant, Prenom, Nom, Etage, Ip, Poste, poste.Materiel, Mdp_Systeme, Mdp_Zimbra FROM users ";
                cmd +"INNER JOIN mdp ON(users.Identifiant mdp.Identifiant) ";
                cmd +"INNER JOIN poste ON(users.Identifiant poste.Identifiant) WHERE " + sFiltre + "='" + sValeur + "'";

                MyAdapter.SelectCommand = new MySqlCommand(cmd, connection);
                MyAdapter.Fill(ds);

                dataGridView1.DataSource = ds.Tables[0];
                dataGridView1.Refresh();  
            }
            connection.Close();
        }



j'ai mit en rouge la ou ça coince.
J'arrive a récupérer la valeur de la cellule, mais au moment de la décrypter, il me dit : "Paramètre incorrecte" au niveau de ma fonction :


        static string UnprotectPassword(string protectedPassword)
        {
            byte[] protectedBytes = Convert.FromBase64String(protectedPassword);
            byte[] bytes = ProtectedData.Unprotect(protectedBytes, null, DataProtectionScope.CurrentUser);
            return Encoding.UTF8.GetString(bytes);
        }



ci vous avez une petite idée pour que toutes les cellules à la colonne 8 soit décrypter, je suis preneur .
Merci d'avance.

-La constante d'une personne est la variable d'une autre.
-Il y a deux manières d'écrire des programmes sans erreurs. Seule la troisième marche
-Tout programme a (au moins) deux buts : celui pour lequel il a été écrit, et celui pour lequel il ne l'a pas

7 réponses

theflayer Messages postés 125 Date d'inscription dimanche 28 février 2010 Statut Membre Dernière intervention 21 juin 2015 2
25 juil. 2012 à 10:11
Salut, ok c'est bon j'ai trouvé

Donc en faite le problème c'était tous simplement pas coté C# mais coté MySQL...
J'avais mis un Varchar trop petit du coup il me coupait une partie du mot de passe crypter lors de l'enregistrement ..

Du coup j'ai l'ai agrandit et je rafraichis mon datagrid comme cité plus haut :

string valu = (string)dataGridView1.Rows[2].Cells[8].Value; 
dataGridView1.Rows[2].Cells[8].Value = UnprotectPassword(valu);
dataGridView1.Refresh();


Maintenant je vais essayer de boucler selon le nombre de ligne pour qu'il me le fasse sur toutes les lignes du datagrid, et si ça marche pas je reviens vous embêter

Merci à tous.
-La constante d'une personne est la variable d'une autre.
-Il y a deux manières d'écrire des programmes sans erreurs. Seule la troisième marche
-Tout programme a (au moins) deux buts : celui pour lequel il a été écrit, et celui pour lequel il ne l'a pas
3
Rejoignez-nous