Python est un langage que je trouve plus simple à lire que le C, surtout au début.
La syntaxe est plus courte et on peut rapidement écrire un petit programme qui fonctionne. C’est aussi pour cette raison que j’ai commencé à l’utiliser pour créer quelques projets liés à ce que j’apprends en informatique.
Par exemple, pour afficher un message :
print("Bonjour")Il n’y a pas besoin de déclarer une fonction main() ou d’ajouter beaucoup de lignes pour commencer.
Les variables
Avec Python, on peut créer une variable directement :
nom = "Abdessamad"
age = 20
note = 14.5Python comprend automatiquement le type de la variable.
C’est différent du C, où on doit écrire par exemple :
int age = 20;Au début, cette différence m’a rendu Python plus facile à prendre en main.
Les conditions
Les conditions permettent de faire un choix selon une valeur.
Par exemple :
note = 14
if note >= 10:
print("Module validé")
else:
print("Module non validé")Le principe est assez simple : Python vérifie la condition et exécute le bloc correspondant.
Je commence à utiliser beaucoup les conditions dans les petits projets que je développe actuellement.
Les boucles
Les boucles permettent de répéter une action.
Par exemple :
for i in range(5):
print(i)Python affiche :
0
1
2
3
4Les boucles deviennent surtout intéressantes lorsqu’on doit traiter plusieurs éléments, comme une liste de mots de passe, plusieurs adresses IP ou plusieurs ports réseau.
C’est justement ce que j’essaie de faire dans mes projets actuels.
Premier projet : générer et vérifier des mots de passe
Le premier petit projet que je suis en train de créer concerne les mots de passe.
L’idée est d’avoir deux fonctions principales.
La première permet de générer automatiquement un mot de passe.
Par exemple :
Mot de passe généré :
K7@mP2!xQ9Pour faire ça, Python peut utiliser plusieurs types de caractères :
lettres majuscules
lettres minuscules
chiffres
caractères spéciauxLe programme peut ensuite choisir plusieurs caractères aléatoirement pour construire le mot de passe.
La deuxième partie sert à vérifier la force d’un mot de passe.
Par exemple, l’utilisateur entre :
bonjour123et le programme vérifie plusieurs choses :
longueur suffisante
présence de majuscules
présence de minuscules
présence de chiffres
présence de caractères spéciauxLe résultat pourrait être :
Mot de passe : bonjour123
Longueur : OK
Majuscule : NON
Chiffre : OK
Caractère spécial : NON
Résultat : mot de passe faibleAvec un mot de passe plus complet :
NetSec@2026!le résultat pourrait être :
Longueur : OK
Majuscule : OK
Minuscule : OK
Chiffre : OK
Caractère spécial : OK
Résultat : mot de passe fortCe projet reste assez simple, mais il me permet de pratiquer plusieurs notions :
conditions
boucles
fonctions
chaînes de caractères
listes
génération aléatoireJe trouve que c’est plus intéressant que de travailler uniquement avec des exercices comme additionner deux nombres.
Deuxième projet : analyser un réseau avec Python
Le deuxième projet est plus grand.
Comme ma formation est orientée réseaux et sécurité, je voulais essayer de relier Python à ce domaine.
Je suis donc en train de créer un petit outil capable d’analyser un réseau local.
L’idée générale est la suivante :
Réseau
|
v
Programme Python
|
v
Adresses IP
|
v
Ports ouverts
|
v
Informations sur les servicesPar exemple, je peux travailler sur un réseau comme :
192.168.1.0/24Le programme va essayer de vérifier plusieurs machines du réseau et certains ports courants.
Par exemple :
22 SSH
53 DNS
80 HTTP
443 HTTPS
3389 RDPSi une machine répond sur certains ports, le programme peut afficher quelque chose comme :
IP : 192.168.1.10
22 SSH OPEN
80 HTTP OPEN
443 HTTPS CLOSEDLe but n’est pas de créer un outil professionnel de cybersécurité.
Pour le moment, je veux surtout comprendre comment Python peut utiliser les notions que j’étudie déjà en réseau :
adresse IP
TCP
ports
services
réseau localLe module socket
Pour ce projet, j’ai commencé à découvrir le module Python socket.
Par exemple :
import socketUne socket permet à un programme de communiquer avec un autre équipement à travers le réseau.
Pour un scan de ports simple, le programme peut essayer d’ouvrir une connexion vers une adresse IP et un port.
Si la connexion fonctionne, cela peut indiquer que le port accepte des connexions.
C’est cette partie qui m’intéresse surtout, parce qu’elle relie directement la programmation aux notions TCP/IP que j’étudie dans les modules réseau.
Ajouter une petite analyse
Plus tard, je voudrais aussi ajouter quelques messages simples.
Par exemple :
Port 22 SSH ouvert
→ service SSH disponible
Port 23 TELNET ouvert
→ attention : Telnet n'est pas chiffré
Port 80 HTTP ouvert
→ vérifier si HTTPS est aussi disponibleCe ne sera pas un véritable audit de sécurité.
Le programme donnera seulement quelques indications simples pour m’aider à comprendre les services détectés.
Je préfère garder le projet réaliste plutôt que d’essayer de créer directement un outil très avancé que je ne pourrais pas expliquer correctement.
Pourquoi deux projets ?
Le projet de mots de passe me permet surtout de pratiquer les bases de Python.
Le projet réseau va plus loin et correspond davantage à ma formation.
Je vois donc les deux projets comme une progression :
Python de base
|
v
Générateur et vérificateur de mots de passe
|
v
Manipulation de fonctions et conditions
|
v
Projet réseau
|
v
IP, TCP, ports et servicesC’est aussi une façon pour moi de ne pas apprendre Python uniquement avec des exercices de cours.
J’essaie de créer des petits programmes qui ont un objectif concret.
Ce que j’apprends actuellement
Pour l’instant, je travaille surtout sur :
les variables ;
les conditions ;les boucles ;
les fonctions ;
les listes et dictionnaires ;
les chaînes de caractères ;
les fichiers ;
les modules Python ;
les premières notions de
socket.Je suis encore en train de développer les deux projets.
Le premier devrait rester assez petit.
Le deuxième prendra plus de temps, parce que je veux comprendre correctement comment fonctionnent les connexions réseau et le scan des ports avant d’ajouter d’autres fonctionnalités.
Mon objectif est ensuite de mettre les deux projets sur GitHub avec leur code, quelques captures et une explication simple de leur fonctionnement.

0 Commentaires