• STATISTIQUES
  • Il y a eu un total de 0 membres et 16834 visiteurs sur le site dans les dernières 24h pour un total de 16 834 personnes!
    Membres: 2 435
    Discussions: 3 585
    Messages: 32 832
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] Asp-php
    Tutoriaux sur ASP, PHP, ASP.net, XML, SQL, Javascript, HTML, VML - Scripts et ressources pour webmasters - Forums d&#...
    Programmation
    [FR] Newbie Contest
    Crackme: 35, Cryptographie: 49, Hacking: 27, Javascript/Java: 17, Logique: 31, Programmation: 23, Stéganographie: 53
    Challenges
    [EN] Rankk
    Site de challenge construit sur le principe d'une pyramide à 9 level. Level 1: 60,Level 2: 72,Level 3: 68,Lev...
    Challenges
    [EN] Astalavista
    Un site aux ressources incontournable depuis plusieurs années, Astalavista est réellement devenue un cl...
    Hacking
    [FR] Root-Me
    Notre équipe se base sur un constat : à l'heure actuelle ou l'information tend à devenir...
    Hacking
    [FR] frameip
    le site de partage des connaissances du monde TCPIP
    Protocole
    [EN] Dare your mind
    JavaScript: 6, Crypto: 44, Stegano: 36, Logic: 13, Special: 27, Science: 11, Realistic: 7, Programming: 10, Crack It: 6,...
    Challenges

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Python] Chiffreur/DéChiffreur de texte en console
01-09-2011, 04h35 (Modification du message : 19-11-2012, 19h16 par InstinctHack.)
Message : #1
fr0g Hors ligne
NTEuNDI2MzcsLTEuNzc4NDg4
*****



Messages : 348
Sujets : 22
Points: 56
Inscription : Aug 2011
[Python] Chiffreur/DéChiffreur de texte en console
Plop', ne sachant que faire et voulant me remettre un peu au python, j'ai décidé
de me faire un petit Chiffreur/DéChiffreur de texte en Py.

(l'algo est simple pour le moment)

code source ici bien entendu :


Code PHP :
#!/usr/bin/python
# -*- coding: latin-1 -*-

import os
import platform
import sys

########################
# Author : fr0g
# WebSite : hwc-crew.com
#
########################


# Note : si vous vous demandez pourquoi le programme affiche de 
# l'anglais alors que les commentaires en francais,
# c'est juste car je suis un gros bordelique.
# non c'est pour que son utilisation reste intuitive 
# pour les utilisateurs (souvent plus ou moins bilingues)
# tandis que le code source (bien que libre) est principalement organise
# pour faciliter ma propre comprehension du code ( comment m'y retrouver dans un bordel pareil ? ... ca me regarde ;))






#-----------------------------------------CLASS and/or FUNCTIONS

def cryptix(a):                # Fonction de cryptage

#-----------------------------------------------Alpha
    
a.replace('a','ķ',sys.maxint)
    
b.replace('b','ľ',sys.maxint)
    
b.replace('c','Ľ',sys.maxint)
    
b.replace('d','ń',sys.maxint)
    
b.replace('e','ň',sys.maxint)
    
b.replace('f','Łǥ',sys.maxint)
    
b.replace('g','ĬȐ',sys.maxint)
    
b.replace('h','Ĥ',sys.maxint)
    
b.replace('i','ĥ',sys.maxint)
    
b.replace('j','Č',sys.maxint)
    
b.replace('k','Ĕ',sys.maxint)
    
b.replace('l','ᴕ',sys.maxint)
    
b.replace('m','ō',sys.maxint)
    
b.replace('n','ᵼ',sys.maxint)
    
b.replace('o','Ōƻ',sys.maxint)
    
b.replace('p','Ŕ',sys.maxint)
    
b.replace('q','ŕ',sys.maxint)
    
b.replace('r','řᵫ',sys.maxint)
    
b.replace('s','ŧ',sys.maxint)
    
b.replace('t','Ŧ',sys.maxint)
    
b.replace('u','Ũ',sys.maxint)
    
b.replace('v','ᴥ',sys.maxint)
    
b.replace('w','ţ',sys.maxint)
    
b.replace('x','Ů',sys.maxint)
    
b.replace('y','Ŷ',sys.maxint)
    
b.replace('z','ƃ',sys.maxint)
#-----------------------------------------------Num
    
b.replace('0','Ɖ',sys.maxint)
    
b.replace('1','ƍ',sys.maxint)
    
b.replace('2','ƕ',sys.maxint)
    
b.replace('3','Ƣ',sys.maxint)
    
b.replace('4','Ʃ',sys.maxint)
    
b.replace('5','ƪ',sys.maxint)
    
b.replace('6','Ɨ',sys.maxint)
    
b.replace('7','Ƴ',sys.maxint)
    
b.replace('8','ƴ',sys.maxint)
    
b.replace('9','Ƶ',sys.maxint)
#-----------------------------------------------Others
    
b.replace('.','ƺ',sys.maxint)
    
b.replace('!','dž',sys.maxint)
    
b.replace('?','Nj',sys.maxint)
    
b.replace(',','ǒ',sys.maxint)
    
b.replace('é','ǥ',sys.maxint)
    
b.replace('è','Ǻ',sys.maxint)
    
b.replace('à','Ȑ',sys.maxint)
    
b.replace('ê','ȣ',sys.maxint)
    
b.replace('ù','ȸ',sys.maxint)
    
b.replace('(','ȹ',sys.maxint)
    
b.replace(')','Ⱥ',sys.maxint)
    
b.replace('/','ɷ',sys.maxint)
    
b.replace(';','ᴤ',sys.maxint)
    
b.replace(':','ᴲ',sys.maxint)
    
b.replace(' ','ᴽ',sys.maxint)
    
b.replace("'","ᵻ",sys.maxint)
    
+= b
    b 
b[::-1]

    print 
b

    save 
raw_input("\n Save file (y/n) ? : "
    
    if 
save == "y" or save == "":
        
filename raw_input(" Type a name for the new crypted file : ")
        
        if 
filename != "":
            
open(filename,"w")
            
f.write(b)
            
f.close
        
else:
            print 
"Error ... no name given"    
            
raw_input()
    else:    
        
sys.exit()
    

    
""

    
return b





#---------------------------------------------------------------------



def decryptix(x):            # Fonction de decryptage
        


    
len(x) / 2
    b 
x[-int(y):]    
    
    
b[::-1]



#-----------------------------------------------Alpha
    
b.replace('ķ','a',sys.maxint)
    
b.replace('ľ','b',sys.maxint)
    
b.replace('Ľ','c',sys.maxint)
    
b.replace('ń','d',sys.maxint)
    
b.replace('ň','e',sys.maxint)
    
b.replace('Łǥ','f',sys.maxint)
    
b.replace('ĬȐ','g',sys.maxint)
    
b.replace('Ĥ','h',sys.maxint)
    
b.replace('ĥ','i',sys.maxint)
    
b.replace('Č','j',sys.maxint)
    
b.replace('Ĕ','k',sys.maxint)
    
b.replace('ᴕ','l',sys.maxint)
    
b.replace('ō','m',sys.maxint)
    
b.replace('ᵼ','n',sys.maxint)
    
b.replace('Ōƻ','o',sys.maxint)
    
b.replace('Ŕ','p',sys.maxint)
    
b.replace('ŕ','q',sys.maxint)
    
b.replace('řᵫ','r',sys.maxint)
    
b.replace('ŧ','s',sys.maxint)
    
b.replace('Ŧ','t',sys.maxint)
    
b.replace('Ũ','u',sys.maxint)
    
b.replace('ᴥ','v',sys.maxint)
    
b.replace('ţ','w',sys.maxint)
    
b.replace('Ů','x',sys.maxint)
    
b.replace('Ŷ','y',sys.maxint)
    
b.replace('ƃ','z',sys.maxint)
#-----------------------------------------------Num
    
b.replace('Ɖ','0',sys.maxint)
    
b.replace('ƍ','1',sys.maxint)
    
b.replace('ƕ','2',sys.maxint)
    
b.replace('Ƣ','3',sys.maxint)
    
b.replace('Ʃ','4',sys.maxint)
    
b.replace('ƪ','5',sys.maxint)
    
b.replace('Ɨ','6',sys.maxint)
    
b.replace('Ƴ','7',sys.maxint)
    
b.replace('ƴ','8',sys.maxint)
    
b.replace('Ƶ','9',sys.maxint)
#-----------------------------------------------Others
    
b.replace('ƺ','.',sys.maxint)
    
b.replace('dž','!',sys.maxint)
    
b.replace('Nj','?',sys.maxint)
    
b.replace('ǒ',',',sys.maxint)
    
b.replace('ǥ','é',sys.maxint)
    
b.replace('Ǻ','è',sys.maxint)
    
b.replace('Ȑ','à',sys.maxint)
    
b.replace('ȣ','ê',sys.maxint)
    
b.replace('ȸ','ù',sys.maxint)
    
b.replace('ȹ','(',sys.maxint)
    
b.replace('Ⱥ',')',sys.maxint)
    
b.replace('ɷ','/',sys.maxint)
    
b.replace('ᴤ',';',sys.maxint)
    
b.replace('ᴲ',':',sys.maxint)
    
b.replace('ᴽ',' ',sys.maxint)
    
b.replace("ᵻ","'",sys.maxint)
    
    print 
b
    
    save 
raw_input("\n Save file (y/n) ? : "
    
    if 
save == "y" or save == "":
        
filename raw_input(" Type a name for the new decrypted file : ")
        
        if 
filename != "":
            
open(filename,"w")
            
f.write(b)
            
f.close
        
else:
            print 
"Error ... no name given"    
            
raw_input()
    else:    
        
sys.exit()
    
    
    
""

    
return b




    
    

#####################################################################################################PAUSE ICI TROU DU CUL

    
#-----------------------------------------VAR
#----------------------Header

console_header """
##############################
#                 #
#     x.i.t.p.y.r.c       #
#                 #
# version : 0.1             #
# Author : fr0g             #
# Website : hwc-crew.com     #
##############################
"""

#--------------------Menu

console_menu """
Options :
---------------------------------------
- cfile        / Crypt text file 
- dfile        / Decrypt text file
- r/read       / Read file

- q/quit       / Exit program
---------------------------------------
"""

#------------------Loop the program

program_loop # tant que la variable est a 1, le programme tournes.


#-----------------------------------------START

while program_loop == 1:




    
#-----------------------------------------fonction de nettoyage de la console
    
_sys platform.system()

    if 
_sys == "Linux":
        
os.system("clear")

    
elif _sys == "Windows":
        
os.system("cls")

    else:
        print 
"Little Error ... (unknown system ... (sorry, I'm a bad programmer ...))"
        
raw_input("Push Entr for continue ...")
    
    
#-----------------------------------------

    
print console_header
    
print console_menu

    what_the_func 
raw_input(" Choose your function : ")     # Classe comme nom de variable non ? :p

#---------------------



    
if what_the_func == "q" or what_the_func == "quit":
        
program_loop 0                                       # on stop le programme si l'utilisateur entre "q" (pour "quit")


#-----------------------------------------------------------------------------cf : Crypt File



    
elif what_the_func == "cfile" or what_the_func == "cf":
        
s_text ""                            # declaration de la variable recuperant le contenu du fichier
        
x_file raw_input(" Encrypt file : ")         # variable recuperant le nom du fichier


        
try:
            
open(x_file,"r")                   # tentative d'ouverture du fichier en lecture
        
except:                 
            print 
"\nError..."       
            
raw_input()
        else:
            for 
line in f:
    
                if 
len(s_text) == 0:      # si la variable s_text est vide
                    
s_text line     # on lui attribue en valeur : le contenu de la ligne lue
                
else:                     # sinon
                    
s_text += line    # on lui attribue en valeur son contenu + le contenu de la ligne lue
                        
                
continue
            
f.close()

            
cryptix(s_text)                # on lance le cryptage du texte
    



#-----------------------------------------------------------------------------df : Decrypt File

    
elif what_the_func == "dfile" or what_the_func == "df" :

        
s_text ""                            # declaration de la variable recuperant le contenu du fichier
        
x_file raw_input(" Decrypt file : ")         # variable recuperant le nom du fichier


        
try:
            
open(x_file,"r")                   # tentative d'ouverture du fichier en lecture
        
except:                 
            print 
"\nError..."       
            
raw_input()
        else:
            for 
line in f:
    
                if 
len(s_text) == 0:      # si la variable s_text est vide
                    
s_text line     # on lui attribue en valeur : le contenu de la ligne lue
                
else:                     # sinon
                    
s_text += line    # on lui attribue en valeur son contenu + le contenu de la ligne lue
                        
                
continue
            
f.close()
            
decryptix(s_text)                # on lance le decryptage du texte        
    

#--------------------------------------------------------------    Fonction de lecture d'un fichier

    
elif what_the_func == "r" or what_the_func == "read":


        
fileread raw_input(" type a file name to read : ")
    
        if 
fileread != "":
            
open(fileread,"r")
            
_text f.readlines()
            
f.close

            
print "\n"str(_text)+"\n"
            
raw_input("Push Entr to continue")
        else:
            print 
"Error ... no name given"    
            
raw_input()
    

#--------------------------------------------------------------    
    
else:
        print 
"Error... (unknown command)"
        
raw_input()

#-----------------------------------------END
raw_input("\n thank you for using xitpyrc..."
+1 (0) -1 (0) Répondre
01-09-2011, 04h52 (Modification du message : 01-09-2011, 05h16 par CyberSee.)
Message : #2
CyberSee Hors ligne
Admin fondateur de N-PN
*******



Messages : 1,721
Sujets : 287
Points: 158
Inscription : Jan 2012
[Python] Crypteur/Décripteur de texte en console
Ah ouais beau travail ^^ !
Tu devrais ajouter 5 caractères de remplacement pour chaque lettre

Ex : A peut être égale à: 1, 2, 3, 4 ou 5

Quand tu cryptes, tu choisis un des 5 choix de remplacement ce qui empêche d'avoir une logique de constante, car c'est comme sa que l'ont reverse engeneer le cryptage. J'ai donné comme exemple 5, mais si tu peux en mettre plus ce serait encore mieux ^^ et pourquoi cette limite a 1 caractère? Tu pourrais avoir plus de choix en faisant des combinaisons séparer par des espaces

Ex: À peut être égale à: &?, %%, *%, @$ ou &)
B peut être égale à: 8&, $@, 5%, #9 ou !%
C peut être égale à: =4, &9, {*, Þ6 ou ☼&

Donc, ABC pourrait être égale à: &? $@ Þ6 (3 à la puissance 5 = 243 combinaisons et sa augmente a chaque lettre encrypter ^^)
Chaque combinaison serait séparée par un espace. Imagine le casse tête du gars qui essai de décrypter ça sans avoir la recette lol

&? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6 &? $@ Þ6

Une dernière chose, tu devrais agrandir ta bibliothèque de caractère pour éventuellement pouvoir crypter des fichiers :-). Plutôt que de répété la liste des caractères l'hors du cryptage et ensuite pour le décryptage tu devrais faire seulement qu’un array et ensuite interroger cet array l'hor des 2 procédures
+1 (0) -1 (0) Répondre
01-09-2011, 05h05
Message : #3
fr0g Hors ligne
NTEuNDI2MzcsLTEuNzc4NDg4
*****



Messages : 348
Sujets : 22
Points: 56
Inscription : Aug 2011
[Python] Crypteur/Décripteur de texte en console
CyberSee a écrit :et pourquoi cette limite a 1 caractère?


Car je partage le code "brut" pour le moment, le premier "fonctionnel" du projet, évidemment je vais l'améliorer au fur et à mesure Wink .
+1 (0) -1 (0) Répondre
01-09-2011, 05h18
Message : #4
CyberSee Hors ligne
Admin fondateur de N-PN
*******



Messages : 1,721
Sujets : 287
Points: 158
Inscription : Jan 2012
[Python] Crypteur/Décripteur de texte en console
Ben en tout cas, bravo :-) ça promet comme projet! Tu reliras mon poste, je faisais des édits pendant que tu composais ton message ^^
+1 (0) -1 (0) Répondre
01-09-2011, 05h28
Message : #5
fr0g Hors ligne
NTEuNDI2MzcsLTEuNzc4NDg4
*****



Messages : 348
Sujets : 22
Points: 56
Inscription : Aug 2011
[Python] Crypteur/Décripteur de texte en console
Oui, là j'ai bordeliquement utilisé une fonction toute faite ^^ (

pour les prochaines versions je compte utiliser les dictionnaires en python, et évidemment multiplier les possibilités de chiffrement pour chaque caractère. Wink
+1 (0) -1 (0) Répondre
01-09-2011, 16h43
Message : #6
CyberSee Hors ligne
Admin fondateur de N-PN
*******



Messages : 1,721
Sujets : 287
Points: 158
Inscription : Jan 2012
[Python] Crypteur/Décripteur de texte en console
Cool j'ai hâte de voir ce que sa va donné :-)
+1 (0) -1 (0) Répondre
03-12-2011, 17h25
Message : #7
Dobry Hors ligne
Tueur de lamouz
*



Messages : 206
Sujets : 25
Points: 73
Inscription : Aug 2011
[Python] Crypteur/Décripteur de texte en console
Ca faut un petit bout de temps que tu l'as publié, mais pour les prochains qui passerait pas là sachez qu'il sertait plus court et simple de passer par un système de tableau, un contiendrait les lettres et l'autre sont equivalence (rangée dans le même ordre), il n'y aurait qu'a parcourir les tableaux, et effectuer un replace avec les deux paramètre des tableaux en arguments).

good job
Aestuārium Erudītiōnis

There are only two hard things in Computer Science: cache invalidation, naming things, and off-by-one errors.
+1 (0) -1 (0) Répondre
03-12-2011, 20h53
Message : #8
fr0g Hors ligne
NTEuNDI2MzcsLTEuNzc4NDg4
*****



Messages : 348
Sujets : 22
Points: 56
Inscription : Aug 2011
[Python] Crypteur/Décripteur de texte en console
warezz a écrit :Ca faut un petit bout de temps que tu l'as publié, mais pour les prochains qui passerait pas là sachez qu'il sertait plus court et simple de passer par un système de tableau, un contiendrait les lettres et l'autre sont equivalence (rangée dans le même ordre), il n'y aurait qu'a parcourir les tableaux, et effectuer un replace avec les deux paramètre des tableaux en arguments).

good job



Oui c'est la méthode que j'utilise pour la prochaine version (avec GUI)
+1 (0) -1 (0) Répondre
11-12-2011, 16h14
Message : #9
Booster2ooo Hors ligne
Contributeur
*****



Messages : 165
Sujets : 14
Points: 63
Inscription : Aug 2011
[Python] Crypteur/Décripteur de texte en console
CyberSee a écrit :Chaque combinaison serait séparée par un espace. Imagine le casse tête du gars qui essai de décrypter ça sans avoir la recette lol

Pourquoi mettre un espace tous les deux caractères?
En faisant cela, on donne une partie de l'information au reverseur. Or, notre programme sait qu'un caractère = 2 caractères une fois chiffré, donc il n'a pas besoin de l'espace... Me trompe-je?

Sinon, quel est l'efficacité d'un tel système comparé à des opérations mathématiques sur les bytes? (remplacement vs opérations sur une clé)

Ensuite, ne serait-il pas judicieux de créer un tableau de remplacement "dynamique"?
Je m'explique, ou, en tous cas, je vais essayer.

A| AA|AB|AC
B| AD|AE|AF
C| AG|AH|AI
etc

Si je chiffre "Albert", le A dans mon texte à crypter est en 1er position, donc je prend le 1er code cad AA. Disons maintenant que je chiffre "UnMotA", le A se trouve en 6eme position, donc je commence à mon indexe de A et j'ajoute 6, je tombe sur AF. Enfin, prenons "UnMotB", B est en 6eme position, je commence à mon indexe B et je compte 6, j'arrive sur AI.
... Pour déchiffrer, je sais que AI est en 6eme position, je remonte de 6, je suis dans l'indexe B, idem pour les exemples avec le A.
Est-ce envisageable? Est-ce performant? Est-ce facile à reverse?

J'espère que je vous embête pas trop avec toutes ces questions Big Grin
+1 (0) -1 (0) Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  [Python]Situer mon niveau. InforMods 19 5,615 10-11-2016, 00h03
Dernier message: ZeR0-@bSoLu
  [PYTHON] un bot IRC basique darcosion 1 1,050 13-06-2016, 20h40
Dernier message: Yttrium
  [python] ANBU ::: TCP Session Hunter St0rn 2 1,286 25-02-2016, 18h45
Dernier message: otherflow
  [Python] Une autre façon de gérer les Virtualenv et Packages thxer 2 1,095 18-01-2016, 12h06
Dernier message: thxer
  [Python] rot script ark 9 2,745 08-03-2015, 00h37
Dernier message: ark
  [Python] Todo Manager ark 5 1,702 03-03-2015, 10h55
Dernier message: ark
  [python] Un décorateur pour inventorier les objets b0fh 1 1,222 04-12-2014, 17h50
Dernier message: thxer
  [python] UPnP Scanner St0rn 2 1,143 29-10-2014, 14h50
Dernier message: St0rn
  [python] Buffer Overflow : EBP et EIP St0rn 0 804 25-10-2014, 12h58
Dernier message: St0rn
  [Python] QuickHex thxer 9 2,528 15-08-2014, 20h26
Dernier message: sakiir

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut