[toc]
v0.2
B3.3. Sécurisation des équipements et des usages des utilisateurs
Mathieu Frétière www.lookuptables.com
https://github.com/LiliwoL/CSharp-CasserMotDePasseAlphaForceBrute
Pré requis : Visual Studio code doit être installé sur la machine.
- Rapport de TP en répondant aux questions posées.
- Dépôt GitHub contenant les sources de votre programme.
- Ouvrez Visual Studio
- Créez une nouvelle application console nommée CasserMotDePasseAlphaForceBrute
A quoi correspond le caractère ASCII 97?
- Testez le code suivant:
namespace CasserMotDePasseAlphaForceBrute
{
class Program
{
public static void Main(string[] args)
{
// caractère de code ASCII 97
char lettre = (char)97;
System.Console.WriteLine(lettre);
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}
Qu'est ce qui s'affiche?
char lettre = (char)97; // code ASCII 97
System.Console.WriteLine(lettre);
lettre = (char)98; // code ASCII 98
System.Console.WriteLine(lettre);
lettre = (char)99; // etc.
System.Console.WriteLine(lettre);
lettre = (char)100;
System.Console.WriteLine(lettre);
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
Qu’est-ce qui s’affiche ?
En vous inspirant du code précédent, affichez toutes les lettres minuscules de l’alphabet (de a à z) grâce à une boucle for.
Générer un mot de passe constitué de une lettre minuscule aléatoire avec les instructions :
Random rnd = new Random();
// génère un code ASCII entre 97 et 122
int codeASCIIHasard = rnd.Next(97,122);
// obtient la lettre aléatoire à partir du code ASCII
char lettreHasard = (char)codeASCIIHasard;
et essayer de le trouver par force brute avec une boucle for (ou while).
Lorsque la lettre est trouvée, un message doit s’afficher et vous pouvez interrompre la boucle for avec l’instruction :
break ;
A partir du code précédent, générer un mot de passe aléatoire de 2 lettres.
Indication : pour cela, générez deux lettres au hasard lettreHasard1 et lettreHasard2 et puis écrivez :
String motDePasse = "" + lettreHasard1 + lettreHasard2;
et essayer de le trouver par force brute avec deux boucles for imbriquées.
Rappel : deux boucles imbriquées for s’écrivent :
for (int i = ??? ; i < ??? ; i++)
{
// instructions
for (int j = ??? ; j < ??? ; j++)
{
// instructions
}
}
- Faire la même chose avec un mot de passe de trois lettres.
- Afficher le temps passé pour trouver les bonnes lettres.