Skip to content

Commit d8a32d2

Browse files
mouwaficbdre-mandyseathiel-12
authored
Feature/progress bar (#55)
* Documentation de la fonction d'entropie * Essai de fusion (1/2) * Implementation de la fonction de validation du texte déchiffrer * Récupération du main (1/2) * Mise en place des tests unitaires (1/4) * Revert "Mise en place des tests unitaires (1/4)" This reverts commit e965801. * Mise en place des tests unitaires (1/4) * Définition de la classe de gestion des rapports de ission et implémentatioon de la fonction de génération des rapport de synthèse * Implémentation de la fonction de recherche d'anciens rapports * Mise en place des tests liés à l'analyzer aes cbc * Corrections de typage et de logique * Correction du comportement à la levée de l'exception * Correction de la lgoque de test de test_exception_déchiffrer * Corection de la logique de test_verification_texte_dechiffre * fix: Utilisation de pathlib pour une gestion portable des chemins. * merge réussi * Validation des tests et corrections du rapport mission * chekpoint: Blowfish _Analyzer.identifier_algo() * add: Intiialisation de Blowfish_Analyzer et implémentation de Blowfish_Analyzer.identifier_algo() * Implémentation de Blowfish_Analyzer.filtrer_dictionnaire_par_indice() * Correction de bug * Implementer de Blowfish déchiffrer * Integration de blowfish dans le detecteur crypto * Gestion des bugs de chemin et d'import * Update gitignore * add: Fichier run_tests.py qui run tous les tests et donne le feedback * fix: Standardisation uniforme de tous les imports pour uniformité * tests aes_gcm * fix: Correction de la validation de la taille de clé dans Blowfish_Analyzer pour respecter l'intervalle de 4 à 56 bytes. * fix: Amélioration et uniformisation de la gestion des erreurs pour les différents cas. * fix: Correction des erreurs de logique * merged * test de l'analyzer Fernet * Correction de l'orchestrateur et ajustements correspondants * Lancement du système de stepping pour la progress bar * fix: Corrections mineures * Integration de la progress bar et correction correspondantes * fix des problemes --------- Co-authored-by: e-mandy <andymfrd02@gmail.com> Co-authored-by: Seathiel <ogoudedjimonde@gmail.com>
1 parent 5e92f94 commit d8a32d2

File tree

7 files changed

+441
-422
lines changed

7 files changed

+441
-422
lines changed

main.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
from src.detecteur_crypto import DetecteurCryptoOrchestrateur, ResultatAnalyse
44
from src.analyzers.blowfish_analyzer import Blowfish_Analyzer
55
from src.analyzers.aes_cbc_analyzer import Aes_Cbc_Analyzer
6+
from src.analyzers.chacha20_analyzer import ChaCha20_Analyzer
7+
68
from src.interface_console import consoleInterface
79
import os
810
from rich.progress import track
@@ -18,4 +20,10 @@
1820

1921
consoleInterface()
2022
# print(DetecteurCryptoOrchestrateur().mission_complete_automatique('data/', 'keys/wordlist.txt'))
21-
23+
# try:
24+
# resultat_dechiffrement: bytes = ChaCha20_Analyzer().dechiffrer("data/mission2.enc", os.urandom(32))
25+
# print(f"Résultat du déchiffrement : {resultat_dechiffrement}")
26+
# except ValueError as ve:
27+
# print(ve)
28+
# except FileNotFoundError:
29+
# print("Erreur: Le fichier 'mission2.enc' est introuvable.")

rapport_mission.txt

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

resultat.txt

-160 Bytes
Binary file not shown.

scripts/test_dechiffrement_missions.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def test_dechiffrement_missions() -> None:
8888
continue
8989

9090
try:
91-
texte = res.decode('utf-8', errors='ignore')
91+
texte = res.decode('utf-8')
9292
except Exception:
9393
texte = ''
9494

src/detecteur_crypto.py

Lines changed: 423 additions & 407 deletions
Large diffs are not rendered by default.

src/interface_console.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,3 @@ def menu_6(self):
250250

251251
# consoleInterface()
252252

253-
if __name__ == "__main__":
254-
# Lancer l'interface console directement: python -m src.interface_console
255-
install()
256-
consoleInterface()

src/utils.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import math, re, string, time
1+
import math, re, string, time, os
22
from pathlib import Path
33
from typing import Any, Dict, List, TypedDict
44
from rich.console import Console
@@ -53,7 +53,6 @@ def verifier_texte_dechiffre(texte: str) -> Dict[str, Any]:
5353
"""
5454

5555
#Statistiques sur le texte
56-
5756
stats: dict[str, Any] = {
5857
'imprimable':0,
5958
'nombre_mots':0,
@@ -70,16 +69,15 @@ def verifier_texte_dechiffre(texte: str) -> Dict[str, Any]:
7069
stats['imprimable'] = int(sum(1 for char in texte if char.isprintable()) / len(texte) * 100)
7170

7271
# Traitement du texte brut pour obtenir une séquence distincte de pseudo-mot à cette étape séparé par des espaces
73-
74-
tab='./:!\\}{_%*$£&#;,~"()[]=§|`^@?'
72+
73+
tab='.\\/:!}{_%*$£&#;,~"()[]=§|`^@?'
7574
copy=texte
7675
for lettre in tab:
7776
copy=copy.replace(lettre, ' ')
7877

7978
# Diviser par espaces et filtrer les mots vides
8079
mots = [mot.strip() for mot in copy.split(' ') if mot.strip()]
8180
stats['nombre_mots']=len(mots)
82-
8381
# Verifier que le chaque mot du texte est un mot anglais/francais
8482

8583
try:
@@ -88,11 +86,12 @@ def verifier_texte_dechiffre(texte: str) -> Dict[str, Any]:
8886
trouve=False
8987
if not mot: continue
9088

91-
first_char = mot[0].lower()
92-
89+
first_char = mot[0].lower()
90+
9391
for syl in ['Fr', 'En']:
9492

95-
chemin = Path(f"dico{syl}")/f"{first_char}.txt"
93+
chemin = Path(f"dico{syl}")/f"{first_char}.txt"
94+
if not os.path.isfile(chemin) : continue
9695
try:
9796
with open(chemin, 'r', encoding='latin-1') as f:
9897
for ligne in f:

0 commit comments

Comments
 (0)