Autor
|
Tema: [Python] ayuda con pycrypto (Leído 6,357 veces)
|
Pois0n84
Desconectado
Mensajes: 8
|
Mi dolor de cabeza es este quiero hacer un programa que me encripte ciertos archivos y luego borre la version original, por que lo he intentado solo me funciona con un solo archivo y crea uno nuevo, yo trabajo con archivos delicados y cuando termino de moficarlos es cifrar y borrar la version sin cifrar. Aqui comienza el codigo: ## def encrypt(key, filename): chunksize = 64*1024 outputFile = "(encrypted)"+filename filesize = str(os.path.getsize(filename)).zfill(16) IV = '' for i in range(16): IV += chr(random.randint(0, 0xFF)) encryptor = AES.new(key, AES.MODE_CBC, IV) with open(filename, 'rb') as infile: with open(outputFile, 'wb') as outfile: outfile.write(filesize) outfile.write(IV) while True: chunk = infile.read(chunksize) if len(chunk) == 0: break elif len(chunk) % 16 != 0: chunk += ' ' * (16 - (len(chunk) % 16)) outfile.write(encryptor.encrypt(chunk))
Este codigo me lo encontre en un foro ya que no encuentro nada relevante en pycrypto. lista_archivos = [ [os.path.join(root,file),root.split(path)[1]] for root,dirs,files in os.walk(path) for file in files if os.path.splitext(file)[-1] in extensiones ] encrypt(getKey(password), lista_archivos)
lista_archivos es donde estan todos los archvios con extensiones .xx luego llamo a la funcion de encriptacion. asi genero el cifrado: password = "xx" > def getKey(password): hasher = SHA256.new(password) return hasher.digest()
lo estoy resumiendo lo mas que puedo bueno el caso es que, la lista recorre todos los archivos con extensiones .xx, y luego me lo almacena en una lista yo quiero cifrar esos archivos y luego borrar el original, arriba el codigo de cifrar solo me permite cifrar un solo archivo, si alguien me ayuda se los agradecería mucho . Gracias de antemano! [MOD]: Menudo desastre con tanto QUOTE. Intenta utilizar la etiqueta CODE como Dios manda...
|
|
« Última modificación: 20 Agosto 2016, 02:28 am por Eleкtro »
|
En línea
|
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
la verdad que como pusiste el código da asco, ahora supongo que tu problema está acá: lista_archivos = [ [os.path.join(root,file),root.split(path)[1]] for root,dirs,files in os.walk(path) for file in files if os.path.splitext(file)[-1] in extensiones ] encrypt(getKey(password), lista_archivos)
probá con algo así: for root,dirs,files in os.walk(path): for file in files: match= re.search(contiene,file) if match is not None: encrypt(getKey(password), file)
por las dudas, tenés que importar re ahhh y "contiene" es la variable con la extensión de archivos, por si solo es un tipo de archivo Saludos.
|
|
« Última modificación: 20 Agosto 2016, 02:59 am por tincopasan »
|
En línea
|
|
|
|
Pois0n84
Desconectado
Mensajes: 8
|
ahahaha sorry por el desastre es que soy nuevo en el foro, al ejecutar me dio este error. Edito el error no me deja ponerlo en formato python match= re.search(extensiones,file) File "C:\Python27\lib\re.py", line 146, in search return _compile(pattern, flags).search(string) File "C:\Python27\lib\re.py", line 237, in _compile p, loc = _cache[cachekey] TypeError: unhashable type: 'list'
|
|
« Última modificación: 20 Agosto 2016, 04:43 am por Pois0n84 »
|
En línea
|
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
ah! listo, no puedo ayudarte no uso ni por casualidad 2.7, pero supongo que en extensiones pusiste por ejemplo: extensiones=".pdf"
o la extensión que quieras encryptar.
|
|
|
En línea
|
|
|
|
Pois0n84
Desconectado
Mensajes: 8
|
pongo ejemplo ".pdf"
que es lo que quiero filtrar
|
|
« Última modificación: 20 Agosto 2016, 04:53 am por Pois0n84 »
|
En línea
|
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
la verdad no me interesa buscar las soluciones entre las versiones de python pero creo que podrías probar también: for root,dirs,files in os.walk(path): for file in files: (nombreFichero, extension) = os.path.splitext(fichero) if(extension == ".pdf"): aencriptar=nombreFichero+extension encrypt(getKey(password), aencriptar)
para no usar el modulo re que es el que está dando problemas.
|
|
|
En línea
|
|
|
|
Pois0n84
Desconectado
Mensajes: 8
|
sabes bro yo tenia algo igual en mente Xd. for root,dirs,files in os.walk(home): for file in files: if os.path.splitext(file)[-1] in extensiones: encrypt(getKey(password), file)
ese fue lo que puse y tanto ese codigo como el tuyo, me encriptan los archivos que estan en el directorio donde se encuentra el scrip, me faltaría que me recorra todos los directorios. Y no solo uno.
|
|
|
En línea
|
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
¿y si cambias (home) por ("c:")?
|
|
|
En línea
|
|
|
|
Pois0n84
Desconectado
Mensajes: 8
|
tampoco , y para que funcione tengo que poner el script ej en el escritorio que es donde tengo 2 o 3 archivos de los muchos pero cuando me va a buscar uno que no esta en el escritorio, me da error.
|
|
|
En línea
|
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
lo probé en windows y desde otra unidad y lo que puse me anda, ahora si usas linux y python 2.7 no tengo la menor idea, porque no uso esos entornos.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[AYUDA][PYTHON] como se usa la libreria WAVE en python?
Scripting
|
Noxware
|
2
|
3,348
|
5 Mayo 2014, 09:03 am
por Intrus0
|
|
|
[AYUDA][PYTHON] Necesito ayuda con el metodo SEARCH del modulo RE de python
Scripting
|
Noxware
|
2
|
3,634
|
24 Mayo 2014, 16:11 pm
por Noxware
|
|
|
[AYUDA][PYTHON] Leer y guardar archivos .exe de forma hexadecimal en python???
Scripting
|
Noxware
|
3
|
5,326
|
22 Agosto 2014, 09:33 am
por Eleкtro
|
|
|
Necesito ayuda con PyCrypto
Scripting
|
Th3_K1d
|
0
|
1,554
|
10 Noviembre 2017, 01:47 am
por Th3_K1d
|
|
|
Instalar pycrypto en ubuntu 14
Seguridad
|
maria13
|
1
|
2,693
|
2 Mayo 2018, 11:36 am
por aangrymasther
|
|