Cipher in Python
#usr/bin/python import os import sys __version__="1.0" __author__="Marcin" #********************** Letters="abcdefghijklmnopqrstuvwxyz 1234567890-+*/_:;()[]{}\n'=" Letters+='",üäö$!?.<>' Letter_dict={} Letter_dict_2={} u=0 for i in Letters: u=u+1 Letter_dict.update({i:u}) Letter_dict_2.update({u:i}) #print(Letter_dict) #print("********") #print(Letter_dict_2) #********************* class cipher_caesar: def __init__(self,key,old_t,file_=None): self.key=key self.new_t="" self.old_t=old_t if(file_ !=None): self.file_=file_ def code(self,text=None): if text!=None: self.old_t=text if self.key!=0: count=1 for i in self.old_t: if(int(Letter_dict[i.lower()]+self.key)1 or Letter_dict[i.lower()]-self.key==1): self.new_t+=Letter_dict_2[int(Letter_dict[i.lower()]-self.key)] else: self.new_t+=Letter_dict_2[len(Letters)-int(self.key-Letter_dict[i.lower()])] count+=1 else: print("Ungültiger key") return self.new_t def MAIN(args): print(" ") if(len(args)==1): weiter=True while(weiter): if(input("crypt:1/decrypt:2 : ")=="1"): text=str(input("Text:")) key=int(input("Key:")) c=cipher_caesar(key,text) crypted=c.code(None) print("crypted:",crypted) else: text=input("Text:") key=int(input("Key:")) c=cipher_caesar(key,text) crypted=c.decode(None) print("->",crypted) input() return crypted else: exit() else: file_=None key="" modus=0 text="" for i in range(len(args)): if args[i]=="-key": key=int(args[i+1]) elif args[i]=="-code": modus=1 elif args[i]=="-decode": modus=2 elif args[i]=="-text": text=str(args[i+1]) elif args[i]=="-file": file_=str(args[i+1]) else:None if(file_==None): c=cipher_caesar(key,text) if(modus==1):v=c.code(None) else:v=c.decode(None) else: if(os.path.exists(file_)): c=cipher_caesar(key,text,file_=file_) if(modus==1):v=c.code_file() else:v=c.decode_file() else: print("FILE DOES NO EXIST") MAIN(sys.argv)
Author:Marcin
Language:Python 3.4
Description: A implementation of one of the simplest algorithms for ciphers, the caesar cipher. You can run it also in the console with args.You can crypt and decrypt files.
No comments:
Post a Comment