Crypter un Password par Hash MD5
Bonjour,
j'ai codé ceci
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Password
{
public partial class Password : Form
{
public Password()
{
InitializeComponent();
}
private void OK_Click(object sender, EventArgs e)
{
String Password = (this.PasswordBox.Text);
String Pass = "********";
String Msg = "Mot de passe Invalide";
String Licence = "0";
if (Password.CompareTo(Pass) == 0)
{
Licence = "1";
Msg = "Mot de passe Valide";
}
MessageBox.Show(Msg);
string text;
System.IO.StreamWriter sw = new System.IO.StreamWriter(".\\Licence.txt");
text = "Licence=";
sw.WriteLine("{0}", text+Licence);
sw.Close();
Application.Exit();
}
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.Enter)
{
String Password = (this.PasswordBox.Text);
String Pass = "********";
String Msg = "Mot de passe Invalide";
String Licence = "0";
if (Password.CompareTo(Pass) == 0)
{
Licence = "1";
Msg = "Mot de passe Valide";
}
MessageBox.Show(Msg);
string text;
System.IO.StreamWriter sw = new System.IO.StreamWriter(".\\Licence.txt");
text = "Licence=";
sw.WriteLine("{0}", text+Licence);
sw.Close();
Application.Exit();
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
}
} |
pour gérer l'accès à une application.
Le problème est que le password est non crypté dans le code, donc pas sécurisé.
J'aimerais faire un Hash MD5 sur le code saisi dans PasswordBox et le comparer avec le Hash MD5 du password autorisé.
De cette manière seul le Hash MD5 du password sera disponible dans le code.
Ce n'est pas inviolable, mais si le password n'est trop light, il faudra déjà avoir envie pour le trouver.
Sauriez vous me dire comment procéder? Je reviens de la MSDN Microsoft et soit je ne comprends rien, ou ce n'est pas fait pour être clair pour les béotiens du C# comme moi.
Merci de votre aide.