begin process at 2010 07 29 16:05:51
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Sécurité & cryptage

 > PROTÉGEZ VOS FICHIERS PDF EN UN SIMPLE CLIC

PROTÉGEZ VOS FICHIERS PDF EN UN SIMPLE CLIC


 Information sur la source

Note :
Aucune note
Catégorie :Sécurité & cryptage Classé sous :pdf, mot passe, password, cryptage, fichiers Niveau :Débutant Date de création :09/10/2007 Date de mise à jour :11/10/2007 10:18:47 Vu :2 322

Auteur : guillaume_pays_cevenol

Ecrire un message privé
Site perso
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Je califierai ce programme comme étant à "usage unique". Le but est de protéger les fichiers pdf contenus dans un répertoire parent et les sous répertoires par un mot de passe.

Le script utilise le module pyPDF permettant d'effectuer certaines manipulations sur ce type de fichiers (en particulier les protéger par un mot de passe). Il est présenté sous la forme d'une interface graphique simple. Le mode opératoire est le suivant :

   1. choix du répertoire contenant les fichiers à crypter,
   2. choix du mot de passe,
   3. cryptage des fichiers,
   4. suppression des fichiers.

Il est également possible d'enregistrer des paramètres par default.

Source

  • # -*- coding: cp1252 -*-
  • import Tkinter
  • import tkFileDialog
  • import os
  • from pyPdf import PdfFileWriter, PdfFileReader
  • class PyCryptPdfIGU:
  • def __init__(self, parent):
  • """Initialisation de l'IGU"""
  • self.parent=parent
  • self.parent.title("Cryptage de fichiers pdf")
  • self.menuBar()
  • self.widget()
  • self.container=Tkinter.Frame(self.parent)
  • self.interface=Tkinter.Text(self.container)
  • self.interface.insert('end','Bonjour et bienvenu\nPour tout renseignement tonny.rosca@gmail.com\n...')
  • self.interface.pack(side='left',expand='YES',fill='both')
  • self.yscrollbar=Tkinter.Scrollbar(self.container)
  • self.yscrollbar.pack(side='right',fill='y')
  • self.container.pack(fill='both',expand='YES')
  • self.yscrollbar.config(command=self.interface.yview)
  • self.option=0
  • try:
  • fileOption=open('parameters.txt','r')
  • while 1:
  • line=fileOption.readline()
  • if line=="":
  • break
  • exec(line)
  • self.interface.insert('end',"Parametres charges avec succes :\n......Repertoire parent : "+str(self.pathIn)+"\n......Mot de passe : "+str(self.passw)+"\n...")
  • except:
  • fileOption=open('parameters.txt','w')
  • fileOption.write("self.pathIn='C:'\nself.passw='password'\nself.viewOption='d'")
  • fileOption.close()
  • self.pathIn='C:'
  • self.passw='password'
  • self.viewOption='d'
  • self.interface.insert('end',"Parametres charges avec succes :\n......Repertoire parent : "+str(self.pathIn)+"\n......Mot de passe : "+str(self.passw)+"\n...")
  • def menuBar(self):
  • """Initialisation de la barre de menu"""
  • menu=Tkinter.Menu()
  • fichier=Tkinter.Menu()
  • fichier.add_command(label='Quitter',command=self.parent.destroy)
  • menu.add_cascade(label='Fichier',menu=fichier)
  • parameters=Tkinter.Menu()
  • parameters.add_command(label="Choix du repertoire de recherche",command=self.askPathIn)
  • parameters.add_command(label="Choix du mot de passe",command=self.askPassword)
  • parameters.add_command(label="Preferences",command=self.option)
  • menu.add_cascade(label='Parametres',menu=parameters)
  • aide=Tkinter.Menu()
  • aide.add_command(label='A propos...',command=self.aboutVersion)
  • aide.add_command(label='Aide',command=self.aboutHelp)
  • menu.add_cascade(label='?',menu=aide)
  • self.parent.config(menu=menu)
  • def aboutHelp(self):
  • """Aide"""
  • self.interface.insert('end','1. Choisir le repertoire de recherche\n...2. Choisir un mot de passe\n...3. Effectuer le traitement\n...4. Effacer eventuellement les sources non cryptees\n...Pour tout renseignement tonny.rosca@gmail.com\n...')
  • self.yscrollbar.config(command=self.interface.yview)
  • def aboutVersion(self):
  • """Version"""
  • self.interface.insert('end',"Cryptage de fichier pdf V1.2\n...")
  • self.yscrollbar.config(command=self.interface.yview)
  • def widget(self):
  • """Boutons d'action"""
  • self.button=Tkinter.Frame(self.parent)
  • self.b0=Tkinter.Button(self.button,text="Effectuer le traitement",command=self.confirmChoiseCrypt)
  • self.b1=Tkinter.Button(self.button,text="Suppression des fichier apres traitement",command=self.confirmChoiseSuppr)
  • self.b0.pack(side='left',expand='YES',fill='x')
  • self.b1.pack(side='left',expand='YES',fill='x')
  • self.button.pack(side='top',expand='NO',fill='x')
  • def askPathIn(self):
  • """Fenetre de selection d'un repertoire d'entree"""
  • self.pathIn=tkFileDialog.askdirectory(parent=self.parent,initialdir=self.pathIn,title="Choisissez un repertoire de recherche")
  • self.interface.insert('end',"Repertoire de recherche : "+str(self.pathIn)+"\n...")
  • def askPassword(self):
  • """Fenetre de selection d'un mot de passe"""
  • self.paramWindow=Tkinter.Toplevel()
  • self.paramWindow.title("Mot de passe")
  • container1=Tkinter.Frame(self.paramWindow)
  • label1=Tkinter.Label(container1,text='Entrez le mot de passe')
  • label1.pack(side='left',fill='x')
  • self.password1=Tkinter.Entry(container1,show='*')
  • self.password1.pack(fill='x',side='right')
  • container2=Tkinter.Frame(self.paramWindow)
  • label2=Tkinter.Label(container2,text='Confirmez le mot de passe')
  • label2.pack(side='left',fill='x')
  • self.password2=Tkinter.Entry(container2,show='*')
  • self.password2.pack(fill='x',side='right')
  • containerButton=Tkinter.Frame(self.paramWindow)
  • buttonValid=Tkinter.Button(containerButton,text='Valider',command=self.validPassw)
  • buttonValid.pack(fill='x')
  • buttonCancel=Tkinter.Button(containerButton,text='Annuler',command=self.paramWindow.destroy)
  • buttonCancel.pack(fill='x')
  • container1.pack(fill='x')
  • container2.pack(fill='x')
  • containerButton.pack(fill='x')
  • def validPassw(self):
  • """Valide le choix du mot de passe"""
  • if str(self.password1.get())==str(self.password2.get()):
  • self.passw=self.password1.get()
  • self.interface.insert('end',"Mot de passe accepte : "+str(self.passw)+".\n...")
  • self.paramWindow.destroy()
  • else:
  • self.interface.insert('end',"Les mots de passes ne sont pas identiques, reessayez.\n...")
  • if self.option==1:#si on doit modifier les parametre par default
  • self.option=0
  • self.validDefault()
  • def option(self):
  • """Modification des parametres par default"""
  • self.option=1#on doit modifier les parametre par default
  • self.askPathIn()
  • self.askPassword()
  • def validDefault(self):
  • """Sauvegarde des parametres par default"""
  • self.interface.insert('end',"Sauvegarde des preferences\n...")
  • try:
  • fileOption=open('parameters.txt','w')
  • fileOption.write("self.pathIn='"+self.pathIn+"'\nself.passw='"+self.passw+"'\nself.viewOption='d'")
  • fileOption.close()
  • self.interface.insert('end',"Sauvegarde effectuee avec succes\n...")
  • except:
  • self.interface.insert('end',"Erreur lors de la sauvegarde : Verifiez vos droit en ecriture sur le fichier 'parameters.py'")
  • def confirmChoiseCrypt(self):
  • """Fenetre de confirmation pour le lancement du cryptage"""
  • self.paramWindow=Tkinter.Toplevel()
  • self.paramWindow.title("Confirmez vous ?")
  • container1=Tkinter.Frame(self.paramWindow)
  • label1=Tkinter.Label(container1,text='Etes vous sur de vouloir crypter le(s) fichier(s) ?')
  • label1.pack(side='top',fill='x')
  • buttonValid=Tkinter.Button(container1,text='Je suis sur !',command=self.pyCryptPdf)
  • buttonValid.pack(fill='x')
  • buttonCancel=Tkinter.Button(container1,text='Annuler',command=self.paramWindow.destroy)
  • buttonCancel.pack(fill='x')
  • container1.pack(fill='x')
  • def confirmChoiseSuppr(self):
  • """Fenetre de confirmation pour la suppession des fichiers cryptes"""
  • self.paramWindow=Tkinter.Toplevel()
  • self.paramWindow.title("Confirmez vous ?")
  • container1=Tkinter.Frame(self.paramWindow)
  • label1=Tkinter.Label(container1,text='Etes vous sur de vouloir supprimer le(s) fichier(s) cryptes ?')
  • label1.pack(side='top',fill='x')
  • buttonValid=Tkinter.Button(container1,text='Je suis sur !',command=self.pyRemove)
  • buttonValid.pack(fill='x')
  • buttonCancel=Tkinter.Button(container1,text='Annuler',command=self.paramWindow.destroy)
  • buttonCancel.pack(fill='x')
  • container1.pack(fill='x')
  • def searchFiles(self):
  • """Recherche dans le repertoire et les sous repertoires 'path' les fichiers '*.pdf'
  • et retourne une liste des chemins vers ces fichiers."""
  • self.fileIn=[]#Initialisation d'une liste representant les chemins vers fichiers ou la chaine a ete trouvee
  • try:
  • for root, dirs, files in os.walk(self.pathIn):
  • #Lecture des differents fichiers du repertoire root
  • for i in range(0,len(files)):
  • #'Lecture du fichier' files[i],'situe dans le repertoire',root
  • if files[i].count('.pdf')==1:
  • self.fileIn=self.fileIn+[root+'/'+files[i]]#sauvegarde du chemin dans une liste
  • if self.viewOption=='d':
  • self.interface.insert('end', 'Detection de fichier(s) termine, '+str(len(self.fileIn))+' fichier(s) pdf a traiter.\n...')
  • if len(self.fileIn):
  • self.interface.insert('end', 'Fichier(s) a traiter :')
  • for i in range(0,len(self.fileIn)):
  • self.interface.insert('end',"\n......"+str(self.fileIn[i]))
  • self.interface.insert('end','\n...')
  • except:
  • if self.viewOption=='d':
  • self.interface.insert('end', 'Le repertoire '+str(self.pathIn)+' n existe pas ou n est pas accessible\n...')
  • self.parent.update()
  • def pyCryptage(self):
  • """Cryptage des fichiers pdf listes dans fileIn avec le code passw"""
  • for i in range(0,len(self.fileIn)):
  • #test du fichier, si crypte, on passe
  • if self.viewOption=='d':
  • self.interface.insert('end', 'Analyse du fichier '+str(self.fileIn[i])+'\n...')
  • self.parent.update()
  • try:
  • fileOpen=open(self.fileIn[i],"rb")
  • inputPdf=PdfFileReader(fileOpen)
  • if not inputPdf.isEncrypted:
  • self.interface.insert('end', 'Cryptage du fichier '+str(self.fileIn[i])+' en cours\n...')
  • self.parent.update()
  • outputPdf=PdfFileWriter()
  • for j in range(0,inputPdf.getNumPages()):
  • outputPdf.addPage(inputPdf.getPage(j))
  • outputPdfStream=file(self.fileIn[i][0:-4]+'_py.pdf', "wb")
  • outputPdf.encrypt(user_pwd=self.passw,owner_pwd=self.passw,use_128bit=True)
  • outputPdf.write(outputPdfStream)
  • outputPdfStream.close()
  • if self.viewOption=='d':
  • self.interface.insert('end', 'Cryptage du fichier '+str(self.fileIn[i])+' effectue avec succes\n...')
  • self.parent.update()
  • else:
  • if self.viewOption=='d':
  • self.interface.insert('end', 'Le fichier '+str(self.fileIn[i])+' est deja crypte\n...')
  • self.parent.update()
  • self.fileIn[i]='crypte'#Pour eviter de supprimer des fichiers deja cryptes
  • fileOpen.close()
  • except:
  • if self.viewOption=='d':
  • self.interface.insert('end', "Impossible d'ouvrir le fichier : "+str(self.fileIn[i])+'\n...')
  • self.parent.update()
  • self.fileIn[i]='ferme'#Pour eviter de supprimer des fichiers non cryptes
  • if self.viewOption=='d':
  • self.interface.insert('end', str(len(self.fileIn)-self.fileIn.count('crypte')-self.fileIn.count('ferme'))+' fichier(s) crypte(s) sur '+str(len(self.fileIn))+' dont '+str(self.fileIn.count('crypte'))+' fichier(s) deja crypte(s) et '+str(self.fileIn.count('ferme'))+' fichier(s) impossible a ouvrir'+'\n...')
  • self.parent.update()
  • def pyRemove(self):
  • """Suppression des fichiers cryptes avec succes"""
  • self.paramWindow.destroy()
  • for i in range(0,len(self.fileIn)):
  • if self.fileIn[i]=='crypte' or self.fileIn[i]=='ferme':
  • pass
  • else:
  • try:
  • os.remove(self.fileIn[i])
  • if self.viewOption=='d':
  • self.interface.insert('end', 'Fichier '+str(self.fileIn[i])+' supprime avec succes'+'\n...')
  • self.parent.update()
  • self.fileIn[i]='suppr'
  • except:
  • if self.viewOption=='d':
  • self.interface.insert('end', "Impossible de supprimer le fichier :"+str(self.fileIn[i])+'\n...')
  • self.parent.update()
  • self.fileIn[i]='notSuppr'
  • self.interface.insert('end', str(self.fileIn.count('suppr'))+'fichier(s) crypte(s) supprime(s) et '+str(self.fileIn.count('notSuppr'))+' fichier(s) non supprime(s)\n...')
  • self.parent.update()
  • def pyCryptPdf(self):
  • self.paramWindow.destroy()#fermeture de la fenetre de confirmation
  • self.searchFiles()#recherche des fichiers suceptibles d'etre traites
  • if len(self.fileIn):#teste si de(s) fichier(s) ont ete detecte
  • self.pyCryptage()#cryptage des fichiers
  • root=Tkinter.Tk()
  • myapp=PyCryptPdfIGU(root)
  • root.mainloop()
# -*- coding: cp1252 -*-
import Tkinter
import tkFileDialog
import os
from pyPdf import PdfFileWriter, PdfFileReader

class PyCryptPdfIGU:
	def __init__(self, parent):
		"""Initialisation de l'IGU"""
		self.parent=parent
		self.parent.title("Cryptage de fichiers pdf")
		self.menuBar()
		self.widget()
		self.container=Tkinter.Frame(self.parent)
		self.interface=Tkinter.Text(self.container)
		self.interface.insert('end','Bonjour et bienvenu\nPour tout renseignement tonny.rosca@gmail.com\n...')
		self.interface.pack(side='left',expand='YES',fill='both')
		self.yscrollbar=Tkinter.Scrollbar(self.container)
		self.yscrollbar.pack(side='right',fill='y')
		self.container.pack(fill='both',expand='YES')
		self.yscrollbar.config(command=self.interface.yview)
		self.option=0
		try:
			fileOption=open('parameters.txt','r')
			while 1:
				line=fileOption.readline()
				if line=="":
					break
				exec(line)
			self.interface.insert('end',"Parametres charges avec succes :\n......Repertoire parent : "+str(self.pathIn)+"\n......Mot de passe : "+str(self.passw)+"\n...")
		except:
			fileOption=open('parameters.txt','w')
			fileOption.write("self.pathIn='C:'\nself.passw='password'\nself.viewOption='d'")
			fileOption.close()
			self.pathIn='C:'
			self.passw='password'
			self.viewOption='d'
			self.interface.insert('end',"Parametres charges avec succes :\n......Repertoire parent : "+str(self.pathIn)+"\n......Mot de passe : "+str(self.passw)+"\n...")

	def menuBar(self):
		"""Initialisation de la barre de menu"""
		menu=Tkinter.Menu()
		fichier=Tkinter.Menu()
		fichier.add_command(label='Quitter',command=self.parent.destroy)
		menu.add_cascade(label='Fichier',menu=fichier)
		parameters=Tkinter.Menu()
		parameters.add_command(label="Choix du repertoire de recherche",command=self.askPathIn)
		parameters.add_command(label="Choix du mot de passe",command=self.askPassword)
		parameters.add_command(label="Preferences",command=self.option)
		menu.add_cascade(label='Parametres',menu=parameters)
		aide=Tkinter.Menu()
		aide.add_command(label='A propos...',command=self.aboutVersion)
		aide.add_command(label='Aide',command=self.aboutHelp)
		menu.add_cascade(label='?',menu=aide)
		self.parent.config(menu=menu)

	def aboutHelp(self):
		"""Aide"""
		self.interface.insert('end','1. Choisir le repertoire de recherche\n...2. Choisir un mot de passe\n...3. Effectuer le traitement\n...4. Effacer eventuellement les sources non cryptees\n...Pour tout renseignement tonny.rosca@gmail.com\n...')
		self.yscrollbar.config(command=self.interface.yview)

	def aboutVersion(self):
		"""Version"""
		self.interface.insert('end',"Cryptage de fichier pdf V1.2\n...")
		self.yscrollbar.config(command=self.interface.yview)

	def widget(self):
		"""Boutons d'action"""
		self.button=Tkinter.Frame(self.parent)
		self.b0=Tkinter.Button(self.button,text="Effectuer le traitement",command=self.confirmChoiseCrypt)
		self.b1=Tkinter.Button(self.button,text="Suppression des fichier apres traitement",command=self.confirmChoiseSuppr)
		self.b0.pack(side='left',expand='YES',fill='x')
		self.b1.pack(side='left',expand='YES',fill='x')
		self.button.pack(side='top',expand='NO',fill='x')

	def askPathIn(self):
		"""Fenetre de selection d'un repertoire d'entree"""
		self.pathIn=tkFileDialog.askdirectory(parent=self.parent,initialdir=self.pathIn,title="Choisissez un repertoire de recherche")
		self.interface.insert('end',"Repertoire de recherche : "+str(self.pathIn)+"\n...")

	def askPassword(self):
		"""Fenetre de selection d'un mot de passe"""
		self.paramWindow=Tkinter.Toplevel()
		self.paramWindow.title("Mot de passe")
		container1=Tkinter.Frame(self.paramWindow)
		label1=Tkinter.Label(container1,text='Entrez le mot de passe')
		label1.pack(side='left',fill='x')
		self.password1=Tkinter.Entry(container1,show='*')
		self.password1.pack(fill='x',side='right')
		container2=Tkinter.Frame(self.paramWindow)
		label2=Tkinter.Label(container2,text='Confirmez le mot de passe')
		label2.pack(side='left',fill='x')
		self.password2=Tkinter.Entry(container2,show='*')
		self.password2.pack(fill='x',side='right')
		containerButton=Tkinter.Frame(self.paramWindow)
		buttonValid=Tkinter.Button(containerButton,text='Valider',command=self.validPassw)
		buttonValid.pack(fill='x')
		buttonCancel=Tkinter.Button(containerButton,text='Annuler',command=self.paramWindow.destroy)
		buttonCancel.pack(fill='x')
		container1.pack(fill='x')
		container2.pack(fill='x')
		containerButton.pack(fill='x')

	def validPassw(self):
		"""Valide le choix du mot de passe"""
		if str(self.password1.get())==str(self.password2.get()):
			self.passw=self.password1.get()
			self.interface.insert('end',"Mot de passe accepte : "+str(self.passw)+".\n...")
			self.paramWindow.destroy()
		else:
			self.interface.insert('end',"Les mots de passes ne sont pas identiques, reessayez.\n...")
		if self.option==1:#si on doit modifier les parametre par default
			self.option=0
			self.validDefault()

	def option(self):
		"""Modification des parametres par default"""
		self.option=1#on doit modifier les parametre par default
		self.askPathIn()
		self.askPassword()

	def validDefault(self):
		"""Sauvegarde des parametres par default"""
		self.interface.insert('end',"Sauvegarde des preferences\n...")
		try:
			fileOption=open('parameters.txt','w')
			fileOption.write("self.pathIn='"+self.pathIn+"'\nself.passw='"+self.passw+"'\nself.viewOption='d'")
			fileOption.close()
			self.interface.insert('end',"Sauvegarde effectuee avec succes\n...")
		except:
			self.interface.insert('end',"Erreur lors de la sauvegarde : Verifiez vos droit en ecriture sur le fichier 'parameters.py'")

	def confirmChoiseCrypt(self):
		"""Fenetre de confirmation pour le lancement du cryptage"""
		self.paramWindow=Tkinter.Toplevel()
		self.paramWindow.title("Confirmez vous ?")
		container1=Tkinter.Frame(self.paramWindow)
		label1=Tkinter.Label(container1,text='Etes vous sur de vouloir crypter le(s) fichier(s) ?')
		label1.pack(side='top',fill='x')
		buttonValid=Tkinter.Button(container1,text='Je suis sur !',command=self.pyCryptPdf)
		buttonValid.pack(fill='x')
		buttonCancel=Tkinter.Button(container1,text='Annuler',command=self.paramWindow.destroy)
		buttonCancel.pack(fill='x')
		container1.pack(fill='x')

	def confirmChoiseSuppr(self):
		"""Fenetre de confirmation pour la suppession des fichiers cryptes"""
		self.paramWindow=Tkinter.Toplevel()
		self.paramWindow.title("Confirmez vous ?")
		container1=Tkinter.Frame(self.paramWindow)
		label1=Tkinter.Label(container1,text='Etes vous sur de vouloir supprimer le(s) fichier(s) cryptes ?')
		label1.pack(side='top',fill='x')
		buttonValid=Tkinter.Button(container1,text='Je suis sur !',command=self.pyRemove)
		buttonValid.pack(fill='x')
		buttonCancel=Tkinter.Button(container1,text='Annuler',command=self.paramWindow.destroy)
		buttonCancel.pack(fill='x')
		container1.pack(fill='x')

	def searchFiles(self):
		"""Recherche dans le repertoire et les sous repertoires 'path' les fichiers '*.pdf'
		et retourne une liste des chemins vers ces fichiers."""
		self.fileIn=[]#Initialisation d'une liste representant les chemins vers fichiers ou la chaine a ete trouvee
		try:
			for root, dirs, files in os.walk(self.pathIn):
				#Lecture des differents fichiers du repertoire root
				for i in range(0,len(files)):
					#'Lecture du fichier' files[i],'situe dans le repertoire',root
					if files[i].count('.pdf')==1:
						self.fileIn=self.fileIn+[root+'/'+files[i]]#sauvegarde du chemin dans une liste
			if self.viewOption=='d':
				self.interface.insert('end', 'Detection de fichier(s) termine, '+str(len(self.fileIn))+' fichier(s) pdf a traiter.\n...')
				if len(self.fileIn):
					self.interface.insert('end', 'Fichier(s) a traiter :')
					for i in range(0,len(self.fileIn)):
						self.interface.insert('end',"\n......"+str(self.fileIn[i]))
					self.interface.insert('end','\n...')
		except:
			if self.viewOption=='d':
				self.interface.insert('end', 'Le repertoire '+str(self.pathIn)+' n existe pas ou n est pas accessible\n...')
		self.parent.update()


	def pyCryptage(self):
		"""Cryptage des fichiers pdf listes dans fileIn avec le code passw"""
		for i in range(0,len(self.fileIn)):
			#test du fichier, si crypte, on passe
			if self.viewOption=='d':
				self.interface.insert('end', 'Analyse du fichier '+str(self.fileIn[i])+'\n...')
				self.parent.update()
			try:
				fileOpen=open(self.fileIn[i],"rb")
				inputPdf=PdfFileReader(fileOpen)
				if not inputPdf.isEncrypted:
					self.interface.insert('end', 'Cryptage du fichier '+str(self.fileIn[i])+' en cours\n...')
					self.parent.update()
					outputPdf=PdfFileWriter()
					for j in range(0,inputPdf.getNumPages()):
						outputPdf.addPage(inputPdf.getPage(j))
					outputPdfStream=file(self.fileIn[i][0:-4]+'_py.pdf', "wb")
					outputPdf.encrypt(user_pwd=self.passw,owner_pwd=self.passw,use_128bit=True)
					outputPdf.write(outputPdfStream)
					outputPdfStream.close()
					if self.viewOption=='d':
						self.interface.insert('end', 'Cryptage du fichier '+str(self.fileIn[i])+' effectue avec succes\n...')
						self.parent.update()
				else:
					if self.viewOption=='d':
						self.interface.insert('end', 'Le fichier '+str(self.fileIn[i])+' est deja crypte\n...')
						self.parent.update()
					self.fileIn[i]='crypte'#Pour eviter de supprimer des fichiers deja cryptes
				fileOpen.close()
			except:
				if self.viewOption=='d':
					self.interface.insert('end', "Impossible d'ouvrir le fichier : "+str(self.fileIn[i])+'\n...')
					self.parent.update()
				self.fileIn[i]='ferme'#Pour eviter de supprimer des fichiers non cryptes
		if self.viewOption=='d':
			self.interface.insert('end', str(len(self.fileIn)-self.fileIn.count('crypte')-self.fileIn.count('ferme'))+' fichier(s) crypte(s) sur '+str(len(self.fileIn))+' dont '+str(self.fileIn.count('crypte'))+' fichier(s) deja crypte(s) et '+str(self.fileIn.count('ferme'))+' fichier(s) impossible a ouvrir'+'\n...')
			self.parent.update()

	def pyRemove(self):
		"""Suppression des fichiers cryptes avec succes"""
		self.paramWindow.destroy()
		for i in range(0,len(self.fileIn)):
			if self.fileIn[i]=='crypte' or self.fileIn[i]=='ferme':
				pass
			else:
				try:
					os.remove(self.fileIn[i])
					if self.viewOption=='d':
						self.interface.insert('end', 'Fichier '+str(self.fileIn[i])+' supprime avec succes'+'\n...')
						self.parent.update()
					self.fileIn[i]='suppr'
				except:
					if self.viewOption=='d':
						self.interface.insert('end', "Impossible de supprimer le fichier :"+str(self.fileIn[i])+'\n...')
						self.parent.update()
					self.fileIn[i]='notSuppr'
		self.interface.insert('end', str(self.fileIn.count('suppr'))+'fichier(s) crypte(s) supprime(s) et '+str(self.fileIn.count('notSuppr'))+' fichier(s) non supprime(s)\n...')
		self.parent.update()

	def pyCryptPdf(self):
		self.paramWindow.destroy()#fermeture de la fenetre de confirmation
		self.searchFiles()#recherche des fichiers suceptibles d'etre traites
		if len(self.fileIn):#teste si de(s) fichier(s) ont ete detecte
			self.pyCryptage()#cryptage des fichiers

root=Tkinter.Tk()
myapp=PyCryptPdfIGU(root)
root.mainloop()

 Conclusion

Pour télécharger la version executable de windows, rendez-vous sur http://gdaveau.free.fr


 Historique

11 octobre 2007 10:18:47 :
Correction d'une petite erreur

 Sources du même auteur

Source avec une capture POKER : ANALYSE DES MAINS ET DES RÉSULTATS DE TOURNOIS POUR ...
Source avec Zip Source avec une capture REDIMENSIONNEMENT D'IMAGES
Source avec Zip Source avec une capture PRÉSENTATION DU MODULE VPYTHON DÉDIÉ À L'ANIMATION 3D
RECHERCHE DE CHAINES DANS UN REPERTOIRE AVEC IGU
RECHERCHE D'UNE CHAINE DANS DES FICHIERS

 Sources de la même categorie

Source avec Zip CRYPTEUR CARRE DE POLYBE par Dipx
Source avec une capture HORAIRESRESTREINTS par lonewolfs
Source avec Zip HIDS EN PYTHON par KimbleMandel
CRYPTEUR EN PYTHON par tallgenius
STEGANOGRAPHIE par Marnage

 Sources en rapport avec celle ci

Source avec Zip CRYPTEUR CARRE DE POLYBE par Dipx
Source avec Zip Source avec une capture GÉNÉRATEUR DE PASSWORD par PlugnPlay666
Source avec Zip Source avec une capture LE MOT LE PLUS LONG PAR DICO par Clempython
Source avec Zip Source avec une capture LES CONTES DE MONTE CRYPTO par amaury74
STEGANOGRAPHIE par Marnage

Commentaires et avis

Commentaire de taz_iup le 12/10/2007 13:13:31

Ne faudrait-il pas prévoir une fonctionnalite inverse permettant de supprimer le mot de passe ?

Les opérations irréversibles, c'est pas top top.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Fichiers en python [ par darfeuille ] Salut,   Etant novice en python, je bloque sur un truc :   Dans un de mes programmes, a un moment, je dois recopier un fichier (en le modi Date de création des fichiers par ftp [ par judre ] Salut, J'ai une application qui transfère une tonne de fichier par ftp en utilisant ftplib.  J'aimerais savoir si y'a un truc pour tél instruction de base sous Python de transfert de fichiers [ par dgpgl ] Comment transferer des fichiers par xxx.jpeg depuis un PC windows sur une  machine linux... a l'adresse xxx.ccc.com qui est ouverte via un port s Comment restaurer data.fs dans l' application zope? [ par rabikisa ] Bonjour, J'ai monté un serveur Zope sous Linux et je dois mettre en place une stratégie de sauvegarde. Zope sauvegarde toutes ses configurations, les fichiers [ par xilure ] voila mon nouveau probleme: je créé un fichier: op=open('monficher','a') op.write(''quelque chose'") op.close() apres comment puis je par erreurs video [ par ktamine ] bonjour étudiante en arts plastiques, je travaille autour de l’esthétique de l’erreur et des données corrompues (d’image Password [ par Nightfighter ] Bon, alors je voudrais savoir:comment on fait pour que quand on entre un password il apparaisse des etoiles et pas le pass.Merci de me repondreVive Le Cryptage DES [Python] [ par Kadaj676 ] Bonjour j'aimerais savoir si vous aviez de la documentation sur des algo's de cryptage. Principalement DES, et je voudrais vosu demander, si il est po lister les fichiers d'un dossier [ par killroy988 ] Bonjour, je vous écris car je suis débutant en Python et j'aimerais réaliser un petit programme pour m'entrainer à la base et aux fichiers...J'ai malh Cryptage xor [ par sorcier0011 ] Bonjour,J'aimerais bien faire un petit crypteur de texte xor mais je n'arrive pas a trouver comment convertir des lettres en Ascii. Parce que apart fa


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Juillet 2010
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales