Module de cryptographie

Contenu du snippet

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 / Exemple :


#!/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 ... :)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.