from math import trunc from random import randint,choice letters={"1":["E","M"],"2":["H","V"],"3":["O","Z"],"4":["P","K"],"5":["I","U"],"6":["Y","N"],"7":["A","F"],"8":["S","L"],"9":["Q","B"],"0":["C","X"],".":["G","D","T"],",":["R","J","W"]} def reverse(str): l=list(str) l.reverse() l="".join(l) return l def dCode(data): liste=list(data) for i in range(len(liste)): for j in letters: if liste[i] in letters[j]: liste[i]=j liste="".join(liste) liste=eval("["+liste+"]") key=liste[-1] del liste[-1] text="" for i in liste: i/=key pEnt=trunc(i) if pEnt<254: text+=chr(pEnt) else: text+=chr(int((pEnt-pEnt%254)/254))+chr(pEnt%254) if i-pEnt!=0: pDec=round((i-pEnt)*100000) pDec="00000"+str(pDec) pDec=int(reverse(pDec[len(pDec)-5:len(pDec)])) if pDec<254: text+=chr(pDec) else: text+=chr(int((pDec-pDec%254)/254))+chr(int(pDec%254)) return text class msg: def __init__(self,data): self.data=data def code(self): data=[] key=randint(1,1000) for i in range(0,len(self.data)-len(self.data)%4,4): pEnt=ord(self.data[i])*254+ord(self.data[i+1]) pDec=ord(self.data[i+2])*254+ord(self.data[i+3]) data.append(float(str(pEnt)+"."+reverse(str(pDec)))) if len(self.data)%4==1: data.append(ord(self.data[len(self.data)-1])) if len(self.data)%4==2 or len(self.data)%4==3: pEnt=ord(self.data[len(self.data)-3])*254+ord(self.data[len(self.data)-2]) data.append(pEnt) if len(self.data)%4==3: data[-1]=float(str(data[-1])+"."+reverse(str(ord(self.data[len(self.data)-1])))) for i in range(len(data)): data[i]*=key data.append(key) data=str(data)[1:-1] data=data.replace(", ",",") data=list(data) for i in range(len(data)): data[i]=choice(letters[data[i]]) data="".join(data) return data if __name__=="__main__": choix=int(input("Que voulez vous faire ?\n 1) Coder un fichier\n 2) Décoder un fichier\n: ")) nom=input("-------\nNom du fichier : ") fichier=open(nom+".py","r") txt=fichier.read() del fichier print("-------") if choix-1: try: print("Message décodé :",dCode(txt)) except: print("Une erreur s'est produite lors du decodage du fichier") else: try: txt=msg(txt) txt=txt.code() print("Message codé :",txt) except: print("Une erreur s'est produite lors du codage du fichier")