begin process at 2010 07 29 15:44:08
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Sécurité & cryptage

 > MODULE DE CRYPTOGRAPHIE

MODULE DE CRYPTOGRAPHIE


 Information sur la source

Note :
7,33 / 10 - par 3 personnes
7,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Sécurité & cryptage Classé sous :cesar, viginaire, encode, cryptographie, marnage Niveau :Débutant Date de création :03/10/2007 Date de mise à jour :15/10/2007 03:57:27 Vu :5 762

Auteur : Marnage

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

 Description

Ceci et un module qui facilite l'encodage & le decodage de type cesar & viginaire .
Installation:
c/c la source dans un fichier crypt.py
sous linux , placer le fichier dans : /usr/lib/pythonversion
Utilisation :
from crypt import encode,decode # on importe le module

#clé = clé de decalage ,de type int :p
#texte = texte a encoder ou ecoder , d"e type char :p

Usage :

from crypto import encode,decode

e = encode("cesar",1,"aA Bb Cc Yy Zz 09 ?!")
print e

e = decode("cesar",1,e)
print e


e = encode("viginaire",123,"aA Bb Cc Yy Zz 09 ?!")
print e

e = decode("viginaire",123,e)
print e

Source

  • #!/usr/bin/python
  • # -*- coding: iso8859-1 -*-
  • '''
  • Module d'encodage & decodage
  • Jule Cesar & Carrer de Viginaire
  • Coded by Marnage
  • Usage :
  • from crypto import encode,decode
  • e = encode("cesar",1,"aA Bb Cc Yy Zz 09 ?!")
  • print e
  • e = decode("cesar",1,e)
  • print e
  • e = encode("viginaire",123,"aA Bb Cc Yy Zz 09 ?!")
  • print e
  • e = decode("viginaire",123,e)
  • print e
  • '''
  • from sys import stdout,exit
  • __all__ = "encode,decode"
  • class Variable:
  • def __init__(self,txt,key):
  • self.txt = txt
  • self.key = key
  • self.txt_crypt = ""
  • self.txt_decrypt = ""
  • if (type(key) != int ):
  • try: self.key = int(key)
  • except :
  • stdout.write("[!] Erreur : key != type int , conversion impossible\n")
  • exit(0)
  • if (type(txt) != str ):
  • try: self.key = str(key)
  • except :
  • stdout.write("[!] Erreur : texte != type char , conversion impossible\n")
  • exit(0)
  • class Cesar(Variable):
  • def __init__(self,txt,key):
  • Variable.__init__(self,txt,key)
  • def Encode(self):
  • i = 0
  • while ( i < len(self.txt) ):
  • num = ord(self.txt[i])+self.key
  • self.txt_crypt += chr(num)
  • i += 1
  • def Decode(self):
  • i = 0
  • while ( i < len(self.txt) ):
  • num = ord(self.txt[i])-self.key
  • self.txt_decrypt += chr(num)
  • i += 1
  • class Viginaire(Variable):
  • def __init__(self,txt,key):
  • Variable.__init__(self,txt,key)
  • def Encode(self):
  • i = 0
  • i_key = 0
  • while ( i < len(self.txt) ):
  • if ( i_key == len(str(self.key)) ):
  • i_key = 0
  • num = ord(self.txt[i])
  • char_key = str(self.key)
  • buffer_key = char_key[i_key]
  • num += int(buffer_key)
  • self.txt_crypt += chr(num)
  • i += 1
  • i_key += 1
  • def Decode(self):
  • i = 0
  • i_key = 0
  • while ( i < len(self.txt) ):
  • if ( i_key == len(str(self.key)) ):
  • i_key = 0
  • num = ord(self.txt[i])
  • char_key = str(self.key)
  • buffer_key = char_key[i_key]
  • num -= int(buffer_key)
  • self.txt_decrypt += chr(num)
  • i += 1
  • i_key += 1
  • def encode(typ,key,txt):
  • if ( typ == "cesar" ):
  • Class = Cesar(txt,key)
  • Class.Encode()
  • elif ( typ == "viginaire" ):
  • Class = Viginaire(txt,key)
  • Class.Encode()
  • else :
  • return "[!] argument inconnu !"
  • return Class.txt_crypt
  • def decode(typ,key,txt):
  • if ( typ == "cesar" ):
  • Class = Cesar(txt,key)
  • Class.Decode()
  • elif ( typ == "viginaire" ):
  • Class = Viginaire(txt,key)
  • Class.Decode()
  • else :
  • return "[!] argument inconnu"
  • return Class.txt_decrypt
#!/usr/bin/python
# -*- coding: iso8859-1 -*- 

''' 
	Module d'encodage & decodage
	Jule Cesar & Carrer de Viginaire
	Coded by Marnage 

Usage : 
	
from crypto import encode,decode

e = encode("cesar",1,"aA Bb Cc Yy Zz 09 ?!")
print e

e = decode("cesar",1,e)
print e


e = encode("viginaire",123,"aA Bb Cc Yy Zz 09 ?!")
print e

e = decode("viginaire",123,e)
print e

'''

from sys import stdout,exit

__all__ = "encode,decode"

class Variable:
	def __init__(self,txt,key):
		self.txt = txt
		self.key = key
		self.txt_crypt = ""
		self.txt_decrypt = ""
		if (type(key) != int ):
			try: self.key = int(key)
			except :
				 stdout.write("[!] Erreur : key != type int , conversion impossible\n")
				 exit(0)
		if (type(txt) != str ):
			try: self.key = str(key)
			except :
				 stdout.write("[!] Erreur : texte != type char , conversion impossible\n")
				 exit(0)
		

class Cesar(Variable):
	def __init__(self,txt,key):
		Variable.__init__(self,txt,key)

	
	def Encode(self):
		i = 0
		while ( i < len(self.txt) ):
			num = ord(self.txt[i])+self.key
			self.txt_crypt += chr(num)
			i += 1

	def Decode(self):
		i = 0
		while ( i < len(self.txt) ):
			num = ord(self.txt[i])-self.key
			self.txt_decrypt += chr(num)
			i += 1

class Viginaire(Variable):
	def __init__(self,txt,key):
		Variable.__init__(self,txt,key)
	
	def Encode(self):
		i = 0
		i_key = 0
		while ( i < len(self.txt) ):
			if ( i_key == len(str(self.key)) ):
				i_key = 0
			num = ord(self.txt[i])
			char_key = str(self.key)
			buffer_key = char_key[i_key]
			num += int(buffer_key)
			self.txt_crypt += chr(num)
			i += 1
			i_key += 1

	def Decode(self):
		i = 0
		i_key = 0
		while ( i < len(self.txt) ):
			if ( i_key == len(str(self.key)) ):
				i_key = 0
			num = ord(self.txt[i])
			char_key = str(self.key)
			buffer_key = char_key[i_key]
			num -= int(buffer_key)
			self.txt_decrypt += chr(num)
			i += 1
			i_key += 1

def encode(typ,key,txt):
	if ( typ == "cesar" ):
		Class = Cesar(txt,key)
		Class.Encode()
	elif ( typ == "viginaire" ):
		Class = Viginaire(txt,key)
		Class.Encode()
	else :
		return "[!] argument inconnu !"
	return Class.txt_crypt


def decode(typ,key,txt):
	if ( typ == "cesar" ):
		Class = Cesar(txt,key)
		Class.Decode()
	elif ( typ == "viginaire" ):
		Class = Viginaire(txt,key)
		Class.Decode()
	else :
		return "[!] argument inconnu" 
	return Class.txt_decrypt

 Conclusion

j'ai totalemenr changer le code ... :)


 Historique

15 octobre 2007 03:57:27 :
refai en plus beau :)

 Sources du même auteur

STEGANOGRAPHIE
INCRÉMENTE IP
REMOTESHELL + DOWNLOAD & UPLOAD DE FICHIER
ANTI-ROOTKIT

 Sources de la même categorie

Source avec Zip CRYPTEUR CARRE DE POLYBE par Dipx
Source avec une capture HORAIRESRESTREINTS par lonewolfs
Source avec Zip HIDS EN PYTHON par KimbleMandel
CRYPTEUR EN PYTHON par tallgenius
STEGANOGRAPHIE par Marnage

 Sources en rapport avec celle ci

STEGANOGRAPHIE par Marnage
INCRÉMENTE IP par Marnage
Source avec une capture CRYPTAGE AVEC LE CHIFFRE DE CÉSAR par ara3n
REMOTESHELL + DOWNLOAD & UPLOAD DE FICHIER par Marnage
ANTI-ROOTKIT par Marnage

Commentaires et avis

Commentaire de xeolin le 08/10/2007 23:45:12 7/10

Bravo,


Bien mais peut etre optimiser,

il est preferable de creer deux fonction afin d'eviter la comparaison "if (typ == "viginaire"):" a chaque boucle.

Puis les commentaire, puis la source (internet si possible) ou tu as trouver cet algorithme d'encription, un site par exemple ou tu peux trouver qui l'a fait, comment ca marche, son resonnement.

Et dit toi que 7/10 pour un code completement ilisible et sans commentaire c'est beaucoup.

Commentaire de Marnage le 09/10/2007 23:31:30

Mon code manque de commentaire je suis d'accord :)
Pour crée une fonction pour le viginaire & cesar je l'avais fait au début , mais bon pour les 3 lgnes qui change celon le type je me suis dit que faire sa serais plus simple :p .
pour les raisonement : google > cryptographie jule cesar ou carré de viginaire .

Commentaire de taz_iup le 12/10/2007 12:50:53

J'ai pas guetter le code source, mais pour isntalelr des modules python il existe le module distutils. Je mettrai peut etre un tuto si j'ai le temps ^^

Commentaire de aera group le 31/10/2007 14:25:13 8/10

Bon boulot, 8/10 bien mérité.
Ton code est assez bien construit avec les classes, même si il y avait moyen de faire beaucoup plus simple (de simples fonctions auraient fait le même boulot, mais c'est bien pour les gens qui début dans les classes) !!!
Bonne continuation

Commentaire de ara3n le 07/11/2007 14:52:06

C'est assez sympa :p

Mais pourquoi faire ( pour Cesar ) une fonction encode et décode alors que c'est le même code pratiquement
il te suffit de rajouter une condition et un paramètre dans ta fonction non ?

Commentaire de Marnage le 09/11/2007 02:30:05

J'ai fais comme tu a dis a la 1er version ( avec des condition ) mais je trouve cette version baucoup plus propre :) , pui le code et plus claire comme sa je trouve :)

Commentaire de CHAR As Human le 15/12/2007 18:55:16 7/10

Pas mal comme source, bien codée.
Tu n'as plus qu'à te lancer dans la programmation d'algorythmes de cryptage un peu plus complexe!
Mais c'est sympa.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Juillet 2010
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

 
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 : 0,889 sec (4)

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