Bonjour , je me permet de poster dans cette section pour vous présenter ma première application en python développée sur mac avec python 3.2
Elle permet de crypter rapidement (grâce à la librairie hashlib) du texte en MD5, sha1, sha224 et sha256 et possède un système de salt.
J'ai exporté le script en une application pour mac grâce à py2app.
J'attends vos impressions, vos critiques et vos conseils et j'espère qu'elle pourra être utile à certains...
PS: L'app utilise Tkinter pour l'interface graphique !
Elle permet de crypter rapidement (grâce à la librairie hashlib) du texte en MD5, sha1, sha224 et sha256 et possède un système de salt.
J'ai exporté le script en une application pour mac grâce à py2app.
J'attends vos impressions, vos critiques et vos conseils et j'espère qu'elle pourra être utile à certains...
Code:
#!/usr/local/bin/pythonw # -*- coding: ISO-8859-1 -*- class Application(object): def __init__(self): self.root=Tk() self.root.title('Easy Crypter') self.root.configure(background='#5d6d9c') self.f0=Frame(self.root, bg='#5d6d9c') self.f1=Frame(self.root, bg='#5d6d9c') self.f2=Frame(self.root, bg='#5d6d9c') self.photo=PhotoImage(file="header.gif") self.photo2=PhotoImage(file="crypter.gif") self.photo3=PhotoImage(file="effacer.gif") self.photo4=PhotoImage(file="clipboard.gif") self.header = Label(self.f0, image=self.photo) self.nomentree = Label(self.f1, text="PlainText", fg="white", bg="#5d6d9c") self.nomentree2 = Label(self.f1, text="Salt", fg="white", bg="#5d6d9c") self.entree = Entry(self.f1, width =50) self.entree2 = Entry(self.f1, width=50) self.but1=Button(self.f2, image=self.photo2, bd=0, command =self.hasher) self.but2=Button(self.f2, image=self.photo3, bd=0, bg="black", command=self.effacer) self.labnul= Label(self.f2,text=" ",fg="black",bg="#5d6d9c") self.labnul2= Label(self.f2,text=" ",fg="black",bg="#5d6d9c") self.labnul3= Label(self.f1,text=" ",fg="black",bg="#5d6d9c") self.f0.pack() self.f1.pack() self.f2.pack() self.i=Frame(self.root, bg='#5d6d9c') self.i.pack(side="left") self.j=Frame(self.root, bg='#5d6d9c') self.j.pack(side="right") self.k=Frame(self.root, bg='#5d6d9c') self.k.pack() self.header.pack() self.labnul3.pack() self.nomentree.pack() self.entree.pack() self.nomentree2.pack() self.entree2.pack() self.labnul.pack() self.positionsalt = IntVar() Radiobutton(self.f1, text="Before PlainText", variable=self.positionsalt, value=1, width=20, fg="white", bg="#5d6d9c").pack() Radiobutton(self.f1, text="After PlainText", variable=self.positionsalt, value=2, width=20, fg="white", bg="#5d6d9c", ).pack() self.but1.pack() self.but2.pack() self.labnul2.pack() self.root.mainloop() def hasher(self): positionsalt = self.positionsalt.get() self.hash = self.entree.get() self.salt = self.entree2.get() if positionsalt == 1: self.md5 = hashlib.md5(self.salt + self.hash).heigest() self.sha1= hashlib.sha1(self.salt + self.hash).heigest() self.sha224= hashlib.sha224(self.salt + self.hash).heigest() self.sha256= hashlib.sha256(self.salt + self.hash).heigest() else: self.md5 = hashlib.md5(self.hash + self.salt).heigest() self.sha1= hashlib.sha1(self.hash + self.salt ).heigest() self.sha224= hashlib.sha224(self.hash + self.salt ).heigest() self.sha256= hashlib.sha256(self.hash + self.salt).heigest() self.lab1= Label(self.i,text="MD5:",fg="white",bg="#5d6d9c") self.lab2= Label(self.j,text="SHA1:",fg="white",bg="#5d6d9c") self.lab3= Label(self.i,text="SHA224:",fg="white",bg="#5d6d9c") self.lab4= Label(self.j,text="SHA256:",fg="white",bg="#5d6d9c") self.but3=Button(self.i, image=self.photo4, bd=0, command=lambda x="md5":self.Copie(x), width=32, height=28) self.but4=Button(self.j, image=self.photo4, bd=0, command=lambda x="sha1":self.Copie(x), width=32, height=28) self.but5=Button(self.i, image=self.photo4, bd=0, command=lambda x="sha224":self.Copie(x), width=32, height=28) self.but6=Button(self.j, image=self.photo4, bd=0, command=lambda x="sha256":self.Copie(x), width=32, height=28) txt1=Text(self.i,width=70,height=1, bg="#5d6d9c", fg="white") txt2=Text(self.j,width=70,height=1, bg="#5d6d9c", fg="white") txt3=Text(self.i,width=70,height=1, bg="#5d6d9c", fg="white") txt4=Text(self.j,width=70,height=1, bg="#5d6d9c", fg="white") self.lab1.pack() txt1.pack() self.but3.pack() self.lab2.pack() txt2.pack() self.but4.pack() self.lab3.pack() txt3.pack() self.but5.pack() self.lab4.pack() txt4.pack() self.but6.pack() txt1.insert(END, self.md5) txt2.insert(END, self.sha1) txt3.insert(END, self.sha224) txt4.insert(END, self.sha256) self.labelsep=Label(self.k,text="",fg="white",bg="#5d6d9c") self.labelsep.pack() def effacer(self): self.i.destroy() self.i.pack_forget() self.j.destroy() self.j.pack_forget() self.k.destroy() self.k.pack_forget() self.Canvas() def Canvas(self): self.i=Frame(self.root, bg='#5d6d9c') self.i.pack(side="left") self.j=Frame(self.root, bg='#5d6d9c') self.j.pack(side="right") self.k=Frame(self.root, bg='#5d6d9c') self.k.pack() def Copie(self, t): if t == "md5": pyperclip.copy(self.md5) elif t == "sha1": pyperclip.copy(self.sha1) elif t == "sha256": pyperclip.copy(self.sha256) else: pyperclip.copy(self.sha224) self.labelsep2=Label(self.k,text="Copied !",fg="#00a322",bg="#5d6d9c") self.labelsep2.pack() from Tkinter import * import hashlib import pyperclip f = Application()
Commentaire