Aller au contenu

loriss

Messages recommandés

Annonces
Maintenant
  • Réponses 75
  • Créé
  • Dernière réponse
Invité
Invités, Posté(e)
Invité
Invité Invités 0 message
Posté(e)
il y a 2 minutes, loriss a dit :

Si tu veux être sûr que la personne te réponde rapidement pense soit à la citer, soit à la notifier avec @

@riad**

Lien à poster
Partager sur d’autres sites

Membre, 22ans Posté(e)
loriss Membre 54 messages
Baby Forumeur‚ 22ans‚
Posté(e)

vous arrivez a l’ouvrir ? @riad**

merci

Lien à poster
Partager sur d’autres sites

Invité riad**
Invités, Posté(e)
Invité riad**
Invité riad** Invités 0 message
Posté(e)

@loriss on va attaquer ce TP mais j'ai pas le temps là tout de suite, en attendant va voir cette vidéo sur la crypto : https://www.youtube.com/watch?v=fCDVvpe_-Do

Essaye de voir toute la série, c'est intéressant.
 

Lien à poster
Partager sur d’autres sites

Membre, 22ans Posté(e)
loriss Membre 54 messages
Baby Forumeur‚ 22ans‚
Posté(e)

@riad**

pas de soucis 

merci pour la vidéo

Lien à poster
Partager sur d’autres sites

Invité riad**
Invités, Posté(e)
Invité riad**
Invité riad** Invités 0 message
Posté(e)

@loriss

J'ai vérifié tes functions ça marche nickel.

Voilà ce qui est demandé :

1-1 La function cesar3 qui décale le texte de trois caractères, c'est la même que tu as écrit sauf qu'il ne faut pas vérifier les majuscules :

def cesar3(txt):
	newChar = ""
	for i in txt:
		n = ((ord(i)-65+3)%26)+65
		newChar = newChar + chr(n)
	return newChar

1-2 La function cesar3plus qui vérifier les majuscules à l'aide d'une function checkMajuscules, c'est exactement ce que tu as fais, je ne fais que recopier :

def checkMajuscules(text):
	ALPHABET="ABCDEFGHIJKLMLNOPQRSTUVWXYZ"
	for c in text:
		if (c in ALPHABET) == False:
			return False
	return True

def cesar3Plus(txt):
	newChar = ""
	if checkMajuscules(txt):
		for i in txt:
			n = ((ord(i)-65+3)%26)+65
			newChar = newChar + chr(n)
	else:
		newChar = newChar +"Erreur : entrez un texte en majuscule"
	return newChar

1-3 La function cesar(text, n), maintenant au lieu de décaler par trois caractères, on laisse le choix à l'utilisateur, donc tu vas réécrire la function précédente, en ajoutant le paramètre n, et en remplacent 3 par la variable n.

Donc c'est simple au lieu de n = ((ord(i)-65+3)%26)+65, on va mettre cd = (ord(i)-65+n)%26)+65

Écrit cette function et poste le résultat.

2- C'est toujours la même function seulement tu ajoutes au début : text = text.upper()

3- Alors, maintenant il faut décoder le message codé, c'est simple, tu reprends toujours la même function, tu la nommes cesarDecode par exemple, et dans ta formule : ((ord(i)-65+n)%26)+65 au lieu d'ajouter n, retire n.

Essaye de faire ça tout seul, et poste le résultat.

Une fois que la function décode est écrite, tu écris la function bruteforce qui applique la function cesarDecode au 26 possibilités, je te la donne :

def bruteforce(txt) :
	return [cesarDecode(txt, i) for i in range(1, 26)]

 

Lien à poster
Partager sur d’autres sites

Membre, 22ans Posté(e)
loriss Membre 54 messages
Baby Forumeur‚ 22ans‚
Posté(e)

@riad**

def checkMajuscules(text):
    ALPHABET="ABCDEFGHIJKLMLNOPQRSTUVWXYZ"
    
    for c in text:
        if (c in ALPHABET) == False:
            return False
    return True
        
        
def cesar3(text):
    newChar = ""
    if checkMajuscules(text):
        for c in text:
            n=((ord(c)-65+clé)%26)+65
            newChar = newChar + chr(n)
    else:
        print("formatage en cours...", end = " ")
        print(text.upper())
        for c in text.upper():
            n=((ord(c)-65+clé)%26)+65
            newChar = newChar + chr(n)
  
    return newChar
    
print("Programme de chiffrement, déchiffrement ,et de Force Brut avec la méthode du chiffre de César")
print()
while 1:
        choix = int(input("Entre 1 pour chiffrer, 2 pour déchiffrer,3 pour utiliser attaqueForceBrut et 0 pour quitter : "))
 
        if choix == 1:
            print("Chiffrement")
            carac=input("rentre les caractère en majuscule:")
            clé = int(input("entrée la clé : "))
            print(cesar3(carac))
            print()
            
        elif choix == 2:
            print("Déchiffrement")
            carac=input("rentre les caractère en majuscule:")
            clé = int(input("entrée la clé : "))
            clé = -clé
            print(cesar3(carac))
            print()
        
        if choix == 3:
            print(" attaqueForceBruteCesar")
            carac=input("rentre les caractère en majuscule:")
            clé = 0
            for i in range(26):
              clé = clé+1
              print(cesar3(carac))
              print()
        
        elif choix == 0:
            print("Fin du programme")
            break
            
        

j'ai tout réunis

Lien à poster
Partager sur d’autres sites

Invité riad**
Invités, Posté(e)
Invité riad**
Invité riad** Invités 0 message
Posté(e)
il y a 23 minutes, loriss a dit :

j'ai tout réunis

Sauf que c'est pas ce qui est demandé.

Bon, à vue d'œil comme ça, il y a des erreurs dans ton code, mais je pense que t'as tout compris.

Mais le TP te demande de livrer aux moins deux fichiers, un fichier pour chaque étape, et le premier exercice te demande trois functions : cesar3, cesar3plus et cesar, et attention aux paramètres, cesar prend deux paramètres : text et n (ou cle si tu veux, mais il faut la mentionner dans les paramètres si non tu te retrouves avec un message d'erreur : "NameError: name 'cle' is not defined".

Donc, en fait t'as compris que tout ça on peut le réunir dans une seule function, mais il faut respecter ce qui est demandé.

Lien à poster
Partager sur d’autres sites

Membre, 22ans Posté(e)
loriss Membre 54 messages
Baby Forumeur‚ 22ans‚
Posté(e)

ETAPE 1 :

1.1:

 

def cesar3(text):
    temp=((ord(c)-65+3)%26)+65)
    return chr(temp)
    
carac=input("rentre le caractère en majuscule:")
print(cesarCar(carac))    
 

 

1.2 :

 

def checkMajuscules(text):
    ALPHABET="ABCDEFGHIJKLMLNOPQRSTUVWXYZ"
    
    for c in text:
        if (c in ALPHABET) == False:
            return False
        return True
        
        
def cesar3(text):
    newChar = ""
    if checkMajuscules(text):
        for c in text:
            temp=((ord(c)-65+3)%26)+65)
            newChar = newChar + chr(temp)
    else:
        newChar = newChar +"Erreur"
    
    return newChar 
            
carac=input("rentre le carctère en majuscule:")
print(cesar3(carac))#et on ecrit le résultat du calcule
 

1.3 :

 

def checkMajuscules(text):

    ALPHABET="ABCDEFGHIJKLMLNOPQRSTUVWXYZ"

   

    for c in text:

        if (c in ALPHABET) == False:

            return False

    return True

       

       

def cesar3(text):

    newChar = ""

    if checkMajuscules(text):

        for c in text:

            temp=((ord(c)-65+n)%26)+65

            newChar = newChar + chr(temp)

    else:

        newChar = newChar +"Erreur"

   

    return newChar

           

carac=input("rentre le caractère en majuscule:")

n = int(input("entrée la clé : "))

print(cesar3(carac))

 

Etape 2 :

 

2.1 :

 

def checkMajuscules(text):

    ALPHABET="ABCDEFGHIJKLMLNOPQRSTUVWXYZ"

   

    for c in text:

        if (c in ALPHABET) == False:

            return False

    return True

       

       

def cesar3(text):

    newChar = ""

    if checkMajuscules(text):

        for c in text:

            n=((ord(c)-65+clé)%26)+65

            newChar = newChar + chr(n)

    else:

        print("formatage en cours...", end = " ")

        print(text.upper())

        for c in text.upper():

            n=((ord(c)-65+clé)%26)+65

            newChar = newChar + chr(n)

 

    return newChar

   

carac=input("rentre les caractère en majuscule:")

clé = int(input("entrée la clé : "))

print(cesar3(carac))

 

2.2 :

def checkMajuscules(text):

    ALPHABET="ABCDEFGHIJKLMLNOPQRSTUVWXYZ"

   

    for c in text:

        if (c in ALPHABET) == False:

            return False

    return True

       

       

def cesar3(text):

    newChar = ""

    if checkMajuscules(text):

        for c in text:

            n=((ord(c)-65+clé)%26)+65

            newChar = newChar + chr(n)

    else:

        print("formatage en cours...", end = " ")

        print(text.upper())

        for c in text.upper():

            n=((ord(c)-65+clé)%26)+65

            newChar = newChar + chr(n)

 

    return newChar

   

carac=input("rentre les caractère en majuscule:")

clé = int(input("entrée la clé : "))

clé = -clé

print(cesar3(carac))

 

 

ETAPE 3 :

3.1 :

def checkMajuscules(text):

    ALPHABET="ABCDEFGHIJKLMLNOPQRSTUVWXYZ"

   

    for c in text:

        if (c in ALPHABET) == False:

            return False

    return True

       

       

def cesar3(text):

    newChar = ""

    if checkMajuscules(text):

        for c in text:

            n=((ord(c)-65+clé)%26)+65

            newChar = newChar + chr(n)

    else:

        print("formatage en cours...", end = " ")

        print(text.upper())

        for c in text.upper():

            n=((ord(c)-65+clé)%26)+65

            newChar = newChar + chr(n)

 

    return newChar

   

 

carac=input("rentre les caractère en majuscule:")

clé = 0

for i in range(26):

    clé = clé+1

    print(cesar3(carac))

    print()

 

 

 

 

 

ETAPE FINAL :

 

 

def checkMajuscules(text):

    ALPHABET="ABCDEFGHIJKLMLNOPQRSTUVWXYZ"

   

    for c in text:

        if (c in ALPHABET) == False:

            return False

    return True                                                                           

       

       

def cesar3(text):

    newChar = ""

    if checkMajuscules(text):

        for c in text:

            n=((ord(c)-65+clé)%26)+65

            newChar = newChar + chr(n)

    else:

        print("formatage en cours...", end = " ")

        print(text.upper())

        for c in text.upper():

            n=((ord(c)-65+clé)%26)+65

            newChar = newChar + chr(n)

 

    return newChar

   

print("Programme de chiffrement, déchiffrement ,et de Force Brut avec la méthode du chiffre de César")

print()

while 1:

        choix = int(input("Entre 1 pour chiffrer, 2 pour déchiffrer,3 pour utiiser attaqueForceBrut et 0 pour quitter : "))

 

        if choix == 1:

            print("Chiffrement")

            carac=input("rentre les caractère en majuscule:")

            clé = int(input("entrée la clé : "))

            print(cesar3(carac))

            print()

            

        elif choix == 2:

            print("Déchiffrement")

            carac=input("rentre les caractère en majuscule:")

            clé = int(input("entrée la clé : "))

            clé = -clé

            print(cesar3(carac))

            print()

       

        if choix == 3:

            print(" attaqueForceBruteCesar")

            carac=input("rentre les caractère en majuscule:")

            clé = 0

            for i in range(26):

              clé = clé+1

              print(cesar3(carac))

              print()

       

        elif choix == 0:

            print("Fin du programme")

            break

           

    

 

@riad**

dans le TD il est dit:

Les fonctions seront bien séparées, le code sera commenté, chaque fonction aura un docstring et les préconditions seront vérifiées par un assert ; de plus, un exemple d’utilisation sera implémenté.

mais je ne sais pas ce que c'est tu pourrais m'éclairer

@riad**

Lien à poster
Partager sur d’autres sites

Invité riad**
Invités, Posté(e)
Invité riad**
Invité riad** Invités 0 message
Posté(e)

@loriss

Tu ne testes pas ton code, du coup y a des erreurs.

Écrits tout ça dans un fichier nomme-le : tp.py enregistre le là ou tu veux

Ouvre un terminal python et saisie :

import sys
sys.path.append('chemin_vers_ton_fichier')

from importlib import reload
import tp
from tp import *

Maintenant tu peux tester tes fonctions une par une, tu vas trouver des erreurs. à chaque fois que tu corriges, saisie :

reload(tp)
from tp import *

Puis refais le test.
 

Lien à poster
Partager sur d’autres sites

Membre, 22ans Posté(e)
loriss Membre 54 messages
Baby Forumeur‚ 22ans‚
Posté(e)

le problème c'est que je fais mon programme sur python en ligne 

@riad**

Lien à poster
Partager sur d’autres sites

Invité riad**
Invités, Posté(e)
Invité riad**
Invité riad** Invités 0 message
Posté(e)
il y a 3 minutes, loriss a dit :

le problème c'est que je fais mon programme sur python en ligne 

@riad**

T'as pas python installé sur ton ordi? installe-le qu'est ce que tu attends?
Et choisis la version 3.x

Lien à poster
Partager sur d’autres sites

Membre, 22ans Posté(e)
loriss Membre 54 messages
Baby Forumeur‚ 22ans‚
Posté(e)

dans mon école on passe par pyzo pour utiliser python mais voila le message que j'ai :

Le chemin d'accs spcifi est introuvable.

The process failed to start (invalid command?).

Lien à poster
Partager sur d’autres sites

Membre, 22ans Posté(e)
loriss Membre 54 messages
Baby Forumeur‚ 22ans‚
Posté(e)
Lien à poster
Partager sur d’autres sites

Invité riad**
Invités, Posté(e)
Invité riad**
Invité riad** Invités 0 message
Posté(e)
Il y a 2 heures, loriss a dit :

dans mon école on passe par pyzo pour utiliser python mais voila le message que j'ai :

Le chemin d'accs spcifi est introuvable.

The process failed to start (invalid command?).

J'ai pas bien compris, t'as installé python ou pas?

t'es sous ubuntu ou sous windows?

Lien à poster
Partager sur d’autres sites

Membre, 22ans Posté(e)
loriss Membre 54 messages
Baby Forumeur‚ 22ans‚
Posté(e)

oui, sur windows

@riad**

Lien à poster
Partager sur d’autres sites

Invité riad**
Invités, Posté(e)
Invité riad**
Invité riad** Invités 0 message
Posté(e)
il y a 4 minutes, loriss a dit :

oui, sur windows

@riad**

Aïe, je connais absolument rien à windows.

Bon si t'as installé python, essaie de le lancer en utilisant le chemin complet vers le fichier .exe

Sinon test ton code directement sur le python en ligne que tu utilises.

 

Lien à poster
Partager sur d’autres sites

Membre, 22ans Posté(e)
loriss Membre 54 messages
Baby Forumeur‚ 22ans‚
Posté(e)
import sys
sys.path.append('chemin_vers_ton_fichier')

from importlib import reload
import tp
from tp import *

mais du coup je ne peux pas utiliser cette fonction ? @riad**

Lien à poster
Partager sur d’autres sites

Invité riad**
Invités, Posté(e)
Invité riad**
Invité riad** Invités 0 message
Posté(e)
à l’instant, loriss a dit :

import sys
sys.path.append('chemin_vers_ton_fichier')

from importlib import reload
import tp
from tp import *

mais du coup je ne peux pas utiliser cette fonction ? @riad**

 

Non,

mais dis-moi d'abord, tu l'as installé ou pas? je parle de python.
 

Lien à poster
Partager sur d’autres sites

Annonces
Maintenant

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.


×