begin process at 2012 05 24 00:14:21
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Sécurité & cryptage

 > CRYPTEUR CARRE DE POLYBE

CRYPTEUR CARRE DE POLYBE


 Information sur la source

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Sécurité & cryptage Classé sous :CRYPTAGE, POLYDE, CARRE, NIHILISTE, RUSSE Niveau :Débutant Date de création :30/05/2010 Date de mise à jour :07/06/2010 14:07:17 Vu / téléchargé :3 175 / 60

Auteur : Dipx

Ecrire un message privé
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Voila le programme que j'ai codé il y'a peu,

C'est le tout premier code que je propose ici, donc toute remarque est la bienvenue

Il y'a surement quelques lignes qui pourraient être réduites.

Le niveau est, je pense débutant car je commence seulement a programmer depuis peu.

Ce code permets à l'utilisateur de:

- Crypter une phrase à l'aide de la méthode du carré de Polybe ( Carré de Polybe sans le caractère "W" )
- Décrypter une phrase cryptée par le carré de Polybe
- Mini explication sur le carré de Polybe


Il reste encore quelques petites parties à blinder et a modifier, j'en suis conscient

Source

  • # Programme codé par Dipx pour Pythonfrance
  • # V1.0
  • def preparationcryptage(PHRASE):
  • "Fonction qui permet de blinder la phrase que l'utilisateur veux crypter"
  • LISTE1=["âà","éèêë","îï","ô","ûü","ç"]
  • LISTE2=["A","E","I","O","U","C"]
  • i=0
  • # Remplacement des caractères accentués éventuels
  • for mot in LISTE1:
  • REPLACE=LISTE2[i]
  • for lettre in mot:
  • PHRASE=PHRASE.replace(lettre,REPLACE)
  • i+=1
  • for lettre in "',-;:!?.": # Suppression de la ponctuation
  • PHRASE=PHRASE.replace(lettre,"")
  • PHRASE=PHRASE.upper() # Passage en majuscules
  • return PHRASE
  • ############################################ Menu ########################################################
  • print ("Bienvenue dans le programme de cryptage (Méthode de cryptage: Carré de polybe)")
  • print ("Carré de polybe utilisé: Carré de 5*5, lettre retirée: 'W'\n")
  • MENU=True
  • while MENU==True:
  • print (" Que voulez vous faire ?")
  • print ("\nPour crypter une phrase, veuillez taper 1")
  • print ("Pour décrypter une phrase, veuillez taper 2")
  • print ("Pour avoir des explications sur le cryptage du carré de Polyde, tapez 3")
  • choix_util=input("Pour quitter le programme, veuillez taper exit\n=> ")
  • ############################################ Cryptage ###################################################
  • if choix_util=='1':
  • LISTE_H,LISTE_V=[],[]
  • for j in range (4):
  • for i in range(5):
  • LISTE_H.append(chr(65+5*j+i))
  • LISTE_V.append(LISTE_H)
  • LISTE_H=[]
  • LISTE_H=[]
  • LISTE_H.append(chr(85))
  • LISTE_H.append(chr(86))
  • LISTE_H.append(chr(88))
  • LISTE_H.append(chr(89))
  • LISTE_H.append(chr(90))
  • LISTE_V.append(LISTE_H)
  • A_CRYPTER=input("Entrez le texte à crypter :\n=> ")
  • A_CRYPTER=preparationcryptage(A_CRYPTER)
  • A_CRYPTER=A_CRYPTER.replace(" ","")
  • print ("Votre texte crypté est:")
  • for i in range(len(A_CRYPTER)):
  • POS=ord(A_CRYPTER[i])-65
  • VERTI=str(int((POS/5)+1))
  • HORI=str((POS%5)+1)
  • FIN=VERTI+HORI
  • print (FIN,end=' ')
  • print ("\nSi vous voulez revenir au menu de sélection, tapez sur la touche enter")
  • CHOIX_MENU=input("Si vous voulez quitter le programme, tapez exit/n =>")
  • if CHOIX_MENU=="exit":
  • MENU=False
  • #################################### Decryptage #############################################################
  • elif choix_util=='2':
  • LISTE_H,LISTE_V=[],[]
  • for j in range (4):
  • for i in range(5):
  • LISTE_H.append(chr(65+5*j+i))
  • LISTE_V.append(LISTE_H)
  • LISTE_H=[]
  • LISTE_H=[]
  • LISTE_H.append(chr(85))
  • LISTE_H.append(chr(86))
  • LISTE_H.append(chr(88))
  • LISTE_H.append(chr(89))
  • LISTE_H.append(chr(90))
  • LISTE_V.append(LISTE_H)
  • A_DECRYPT=input("Entrez le message à décrypter :\n=> ")
  • A_DECRYPT=A_DECRYPT.replace(" ","")
  • LONG=len(A_DECRYPT)
  • print ("\nMessage décrypté :")
  • for h in range(0,LONG,2): #
  • POS=int(A_DECRYPT[h])-1
  • POS2=int(A_DECRYPT[h+1])-1
  • CARAC=LISTE_V[POS][POS2]
  • print (CARAC,end='')
  • print ("\nSi vous voulez revenir au menu de sélection, tapez sur la touche enter")
  • CHOIX_MENU=input("Si vous voulez quitter le programme, tapez exit\n=> ")
  • if CHOIX_MENU=="exit":
  • MENU=False
  • ############################# Explications sur le carré de Polyde ##################################################
  • elif choix_util=='3':
  • LISTE_H,LISTE_V=[],[]
  • for j in range (4):
  • for i in range(5):
  • LISTE_H.append(chr(65+5*j+i))
  • LISTE_V.append(LISTE_H)
  • LISTE_H=[]
  • LISTE_H=[]
  • LISTE_H.append(chr(85))
  • LISTE_H.append(chr(86))
  • LISTE_H.append(chr(88))
  • LISTE_H.append(chr(89))
  • LISTE_H.append(chr(90))
  • LISTE_V.append(LISTE_H)
  • print ("Voici un schéma du carré de Polybe :\n" )
  • for j in range (5):
  • for i in range(5):
  • print (LISTE_V[j][i],end='')
  • print ()
  • print ("\nChaque lettre à une coordonnée qui lui est propre,")
  • print ("La coordonnée se lit comme ceci: (Numéro de la ligne, Numéro de la colonne),")
  • print ("Ainsi la coordonée de A est (1,1) et se crypte: 11")
  • print ("Pour en savoir plus : <http://www.apprendre-en-ligne.net/crypto/subst/polybe.html>")
  • print ("\nSi vous voulez revenir au menu de sélection, tapez sur la touche enter")
  • CHOIX_MENU=input("Si vous voulez quitter le programme, tapez exit\n=> ")
  • if CHOIX_MENU=="exit":
  • MENU=False
  • ############################## Blindage menu + commande exit ##############################################
  • elif choix_util=='exit':
  • MENU=False
  • else :
  • print ("\nVeuillez entrer une commande valide")
  • print ("Retour au menu\n")
  • print ("Merci d'avoir utilisé le programme de cryptage/décryptage du carré de Polyde !")
# Programme codé par Dipx pour Pythonfrance
# V1.0


def preparationcryptage(PHRASE):
    "Fonction qui permet de blinder la phrase que l'utilisateur veux crypter"
    LISTE1=["âà","éèêë","îï","ô","ûü","ç"]
    LISTE2=["A","E","I","O","U","C"]
    i=0
    # Remplacement des caractères accentués éventuels
    for mot in LISTE1:
       REPLACE=LISTE2[i]
       for lettre in mot:
           PHRASE=PHRASE.replace(lettre,REPLACE)
       i+=1      
    for lettre in "',-;:!?.":  # Suppression de la ponctuation
        PHRASE=PHRASE.replace(lettre,"")
    PHRASE=PHRASE.upper()    # Passage en majuscules
    return PHRASE

############################################           Menu        ########################################################

print ("Bienvenue dans le programme de cryptage (Méthode de cryptage: Carré de polybe)")
print ("Carré de polybe utilisé: Carré de 5*5, lettre retirée: 'W'\n")

MENU=True
while MENU==True:

    print ("                               Que voulez vous faire ?")
    print ("\nPour crypter une phrase, veuillez taper 1")
    print ("Pour décrypter une phrase, veuillez taper 2")
    print ("Pour avoir des explications sur le cryptage du carré de Polyde, tapez 3")
    choix_util=input("Pour quitter le programme, veuillez taper exit\n=> ")
 

############################################         Cryptage          ###################################################

    if choix_util=='1':
        LISTE_H,LISTE_V=[],[]
        for j in range (4):
            for i in range(5):               
                LISTE_H.append(chr(65+5*j+i))
            LISTE_V.append(LISTE_H)
            LISTE_H=[]
        LISTE_H=[]
        LISTE_H.append(chr(85))
        LISTE_H.append(chr(86))
        LISTE_H.append(chr(88))
        LISTE_H.append(chr(89))
        LISTE_H.append(chr(90))
        LISTE_V.append(LISTE_H)


        A_CRYPTER=input("Entrez le texte à crypter :\n=> ")
        A_CRYPTER=preparationcryptage(A_CRYPTER)
        A_CRYPTER=A_CRYPTER.replace(" ","")


        print ("Votre texte crypté est:")
        for i in range(len(A_CRYPTER)):
            POS=ord(A_CRYPTER[i])-65
            VERTI=str(int((POS/5)+1))
            HORI=str((POS%5)+1)
            FIN=VERTI+HORI
            print (FIN,end=' ')


        print ("\nSi vous voulez revenir au menu de sélection, tapez sur la touche enter")
        CHOIX_MENU=input("Si vous voulez quitter le programme, tapez exit/n =>")
        if CHOIX_MENU=="exit":
            MENU=False

####################################         Decryptage          #############################################################

    elif choix_util=='2':
        LISTE_H,LISTE_V=[],[]
        for j in range (4):
            for i in range(5):               
                LISTE_H.append(chr(65+5*j+i))
            LISTE_V.append(LISTE_H)
            LISTE_H=[]
        LISTE_H=[]
        LISTE_H.append(chr(85))
        LISTE_H.append(chr(86))
        LISTE_H.append(chr(88))
        LISTE_H.append(chr(89))
        LISTE_H.append(chr(90))
        LISTE_V.append(LISTE_H)
           

        A_DECRYPT=input("Entrez le message à décrypter :\n=> ")
        A_DECRYPT=A_DECRYPT.replace(" ","")
        LONG=len(A_DECRYPT)

        print ("\nMessage décrypté :")

        for h in range(0,LONG,2):  #           
            POS=int(A_DECRYPT[h])-1
            POS2=int(A_DECRYPT[h+1])-1
            CARAC=LISTE_V[POS][POS2]
            print (CARAC,end='')

        print ("\nSi vous voulez revenir au menu de sélection, tapez sur la touche enter")
        CHOIX_MENU=input("Si vous voulez quitter le programme, tapez exit\n=> ")
        if CHOIX_MENU=="exit":
            MENU=False

#############################      Explications sur le carré de Polyde       ##################################################

    elif choix_util=='3':
        LISTE_H,LISTE_V=[],[]
        for j in range (4):
            for i in range(5):               
                LISTE_H.append(chr(65+5*j+i))
            LISTE_V.append(LISTE_H)
            LISTE_H=[]
        LISTE_H=[]
        LISTE_H.append(chr(85))
        LISTE_H.append(chr(86))
        LISTE_H.append(chr(88))
        LISTE_H.append(chr(89))
        LISTE_H.append(chr(90))
        LISTE_V.append(LISTE_H)

        print ("Voici un schéma du carré de Polybe :\n" )
        for j in range (5):
            for i in range(5):
                print (LISTE_V[j][i],end='')
            print ()
        print ("\nChaque lettre à une coordonnée qui lui est propre,")
        print ("La coordonnée se lit comme ceci: (Numéro de la ligne, Numéro de la colonne),")
        print ("Ainsi la coordonée de A est (1,1) et se crypte: 11")
        print ("Pour en savoir plus : <http://www.apprendre-en-ligne.net/crypto/subst/polybe.html>")
        print ("\nSi vous voulez revenir au menu de sélection, tapez sur la touche enter")
        CHOIX_MENU=input("Si vous voulez quitter le programme, tapez exit\n=> ")
        if CHOIX_MENU=="exit":
            MENU=False

############################## Blindage menu + commande exit ##############################################

    elif choix_util=='exit':
        MENU=False
    else :
        print ("\nVeuillez entrer une commande valide")
        print ("Retour au menu\n")

print ("Merci d'avoir utilisé le programme de cryptage/décryptage du carré de Polyde !")


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

30 mai 2010 12:25:24 :
Mise a jour de la descritpion
30 mai 2010 12:35:36 :
Erreur de code trouvée
30 mai 2010 21:02:53 :
Correction description
07 juin 2010 13:59:54 :
1) Ajout d'un lien d'explication du cryptage 2) Suppression des print superflus Merci @Plug'n'Play 666
07 juin 2010 14:01:49 :
Suppression bug
07 juin 2010 14:07:17 :
Fichier ZIP a refaire, je fais ca tantôt

 Sources de la même categorie

Source avec une capture GÉNÉRATEUR DE MOT DE PASSE PYTHON (CLI) par svmars
Source avec Zip Source avec une capture GÉNÉRATEUR DE MOT DE PASSE PYTHON / WXPYTHON par svmars
CRYPTE ET DECRYPTE UN FICHIER (AVEC HASH POUR VÉRIFICATION) par saigneurdushi
Source avec une capture HORAIRESRESTREINTS par lonewolfs
Source avec Zip HIDS EN PYTHON par KimbleMandel

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture LES CONTES DE MONTE CRYPTO par amaury74
STEGANOGRAPHIE par Marnage
Source avec une capture CRYPTAGE AVEC LE CHIFFRE DE CÉSAR par ara3n
Source avec une capture PROTÉGEZ VOS FICHIERS PDF EN UN SIMPLE CLIC par guillaume_pays_cevenol
Source avec Zip Source avec une capture CHIFFRE DE VIGENÈRE par benitoelputoamo

Commentaires et avis

Commentaire de PlugnPlay666 le 06/06/2010 15:40:57 8/10

Bonjour,

Je pense que tu devrais laisser la possibilité à ton utilisateur de sélectionner un fichier texte à encrypter/décrypter, ça serait plus simple. Car si il a un gros texte ça risque de prendre beaucoup de temps de tout copier . . .
Tu pourrais également lui proposer d'enregistrer le texte après encryptage/décryptage pour qu'il n'ai pas à tout recommencer.

J'ai vu que tu faisais un print() pour pouvoir sauter une ligne, je te recommande de mettre un /n ou /r à la place de ton print(), car c'est vraiment moche et le Python est un langage créé pour être beau et agréable à lire.
(erreur visibles aux lignes 25 ; 31 ; 71 ; 111 ; 136 ; 141 ; 145 ; 157 ; 160 )

Dans ta description du carré de poblybe, tu pourrais rajouter à la fin print('Pour en savoir plus : <http://www.apprendre-en-ligne.net/crypto/subst/polybe.html>') pour que les utilisateurs puissent en savoir plus à propos de Polybe et de son cryptage (que je ne connais pas du tout d'ailleurs ^^" )

Sinon, je pense que ton code sera utile aux débutants en Python qui cherche à remplacer un caractère par un autre dans n'importe quel but.

Cordialement Plug'n'Play 666.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Cryptage DES [Python] [ par Kadaj676 ] Bonjour j'aimerais savoir si vous aviez de la documentation sur des algo's de cryptage. Principalement DES, et je voudrais vosu demander, si il est po Cryptage xor [ par sorcier0011 ] Bonjour,J'aimerais bien faire un petit crypteur de texte xor mais je n'arrive pas a trouver comment convertir des lettres en Ascii. Parce que apart fa [Programme Python] Cryptage RSA (cherche codeur) [ par GelH ] Bonjour, Je recherche un codeur Python capable de réaliser un programme de cryptage/décryptage d'une chaine de caractère utilisant l'algorithme RSA.


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,867 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales