#On the name of ALLAH and may the blessing and peace of Allah
#be upon the Messenger of Allah Mohamed Salla Allahu Aliahi Wassalam.
#Author : Fouad Teniou
#Date : 13/10/09
#version :2.6.1
"""
Code_Fouad_Teniou class uses a function made_key, to generate a
random key every time you try to encrypt a text, by using FtEncrypt
function and it uses the same key to decrypt the same text by using
the FtDecrypt method.
The metaclass allows a special access to these methods.
"""
import random
class Code_Fouad_Teniou(object):
"""
Class that represent a code of encryption and decryption
using a made_key method
"""
my_list = []
my_key = []
my_dict = {}
def made_key(self):
"""
A method to create a set of values
and return a random' key
"""
# select a random number from 1 to infinity
ran_number = random.randint(1,99)
# create a random set based on the first number you chose
set = xrange(ran_number,28*ran_number,ran_number)
# increase the value of every number in the set
for item in set:
item += 3
Code_Fouad_Teniou.my_key.append(item)
#return a random key
return Code_Fouad_Teniou.my_key
def FtEncrypt(self,text):
""" Encrypt a text into a list of values """
self.text = text
EncryptText = []
characters = "abcdefghijklmnopqrstuvwxyz "
#attempt to append my_list and update my_dict
#using a random set of alphabet and a random made_key
try:
for char in random.sample(characters,27):
Code_Fouad_Teniou.my_list.append(char)
Code_Fouad_Teniou.my_dict.update(zip(Code_Fouad_Teniou.my_key,Code_Fouad_Teniou.my_list))
for item in text.lower():
for i in Code_Fouad_Teniou.my_dict.items():
if item == i[1]:
EncryptText.append(i[0])
return EncryptText
#Raise AttributeError if text is not a string
except AttributeError:
raise AttributeError, "\n<Please re-enter your text as a 'string'"
def FtDecrypt(self,EncryptText):
""" Decript a list of values into the orginal text """
self.EncryptText = EncryptText
characters = "abcdefghijklmnopqrstuvwxyz "
DecripText = ''
#attempt to decrypt the text using the made_key and EncryptText
try:
for item in self.EncryptText:
DecripText += Code_Fouad_Teniou.my_dict[item]
return DecripText
#Raise KeyError if a different key was used to encrypt the text
except KeyError:
print "\n<Please use the right code(made_key) to decrypt your text"
# Allowing Access of class Code_Fouad_Teniou Methods
def Method_Access(function):
""" Attempted operation to access a function """
pass
class AccessMeta(type):
def __new__(cls,names,bases,namespaces):
for item in bases:
if isinstance(item,AccessMeta):
pass
else:
for code in namespaces['code_steps']:
if code in namespaces:
pass
else:
namespaces[code] = Method_Access(getattr(item,code))
return super(AccessMeta,cls).__new__(cls,names,bases,namespaces)
class Access:
__metaclass__ = AccessMeta
if __name__ == "__main__":
class AccessAppend(Access,Code_Fouad_Teniou):
cft = Code_Fouad_Teniou()
code_steps = "made_key FtEncrypt FtDecrypt ".split()
AccessAppend().cft.made_key()
encrypt = AccessAppend().cft.FtEncrypt('hello world')
print encrypt
decrypt = AccessAppend().cft.FtDecrypt(encrypt)
print decrypt
#######################################################################
Diff to Previous Revision
--- revision 2 2010-01-07 04:17:06
+++ revision 3 2011-08-04 12:03:41
@@ -1,4 +1,5 @@
-#On the name of ALLAH
+#On the name of ALLAH and may the blessing and peace of Allah
+#be upon the Messenger of Allah Mohamed Salla Allahu Aliahi Wassalam.
#Author : Fouad Teniou
#Date : 13/10/09
#version :2.6.1