1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| #!/usr/bin/python
# -*- coding: utf-8 -*-
from Crypto.Cipher import AES
import re
import os
# type de cryptage
mode = AES.MODE_CBC
def fin_ligne(text):
fin = re.compile(r"(.[a-zA-Z0-9]+){1}[\n\r]{1,2}")
if fin.search(text):
return fin.search(text).group(0)
def FonctionDecrypteurAES(fichiercryptAES,fichierdecryptAES,fichiercleAES):
# definition des chemin du fichier a crypter et de la clé
fichier = fichierdecryptAES
fichier_code = fichiercryptAES
fichier_cle = fichiercleAES
fichier_decrypt = open(fichier,"wb")
fichier_decrypt.close()
handler2 = open(str(fichier_code),"rb")
a_decoder = handler2.read()
handler2.close()
fin = str(fin_ligne(a_decoder))
a_decoder2 = a_decoder.replace(str(fin),"")
# lecture du fichier clé
cle = open(str(fichier_cle),"rb")
key = cle.read()
# création fonction codage et decryptage
decoder = AES.new(str(key), mode)
# decryptage du fichier
motdecrypte = decoder.decrypt(str(a_decoder2))
# on retire les espaces rajoutés a la fin pendant le cryptage
space = re.compile(r"[\0]{17,31}$")
if space.search(str(motdecrypte)) :
inter = space.search(str(motdecrypte)).group(0)
motdecrypte = motdecrypte.replace(str(inter),'')
# enregistrement du fichier décrypté
fichier_decrypt = open(str(fichier),"wb+")
fichier_decrypt.write(motdecrypte)
fichier_decrypt.close() |