2008-10-05 20 views
30

Estoy buscando una biblioteca de Python (preferiblemente pura) para hacer cifrado AES 256 y descifrado.¿Qué biblioteca (pura) de Python usar para el cifrado AES 256?

Esta biblioteca debe admitir el modo de cifrado CBC y usar el relleno PKCS7 according to the answer to an earlier question of mine.

La biblioteca debería al menos funcionar en Mac OS X (10.4) y Windows XP. Lo ideal sería simplemente soltarlo en el directorio de origen de mi proyecto. He visto this by Josh Davis, pero no estoy seguro de lo bueno que es y si hace el modo de cifrado CBC requerido ... El escaneo de la fuente sugiere que no

Respuesta

21

PyCrypto debe ser el adecuado para usted.

+0

También hay un contenedor llamado ezPyCrypto. Por desgracia, ambos están en un estado triste, ya que PyCrypto está cambiando los mantenedores y el nuevo no se lanzará. –

+0

PyCrypto desde entonces tiene un lanzamiento 2.1.0. –

+3

PyCrypto requiere GMP que requiere Make y GCC y probablemente algunas otras bibliotecas y programas – Seth

4

¿Qué tal ncrypt? No es puro pitón, pero es mucho más rápido como resultado. Básicamente es un buen contenedor de Python en OpenSSL, para que sepa que hay código de calidad detrás de él.

+0

El enlace ha muerto. (Movido a http://ncrypt.sourceforge.net/?) – ulidtko

3

PyCrypto claramente no es Pythonic para que pueda obtener problemas al compilar en algunas plataformas (AIX, HP-UX, etc)

5

Desde que encontré esta pregunta en la búsqueda de la misma cosa que me gustaría añadir otra a la lista:

SlowAES - http://code.google.com/p/slowaes/
Es un desarrollo de código Josh Davis, con la ayuda de otras personas. Parece que funciona bien.

+1

Parece que no hay descargas en ese sitio. – Seth

+2

Es Python puro (o lo que sea); solo mira la fuente y usa lo que necesitas. http://code.google.com/p/slowaes/source/checkout – JLundell

12

https://github.com/caller9/pythonaes

Eso es pitón puro con relleno PKCS7. Admite los modos CBC, CFB y OFB.

El problema es que Python no es súper rápido para este tipo de cosas. El código de la horquilla de serprex es un poco inescrutable, pero mucho más rápido que el mío debido al uso de todo tipo de trucos para exprimir hasta el último bit de velocidad de Python.

Realmente, las mejores bibliotecas para esto están compiladas y enganchan cosas de SSE/MMX.

También Intel está preparando instrucciones AES desde la línea de chips Core (tm).

Escribí mi versión para obtener una verdadera versión pura de Python para poder ejecutar en cualquier arquitectura, multiplataforma, con 3.x y 2.7.

+4

Vaya, tu código adora PyPy: encripta 4 veces más rápido para mí. – TryPyPy

+1

Enlace a la bifurcación mencionada que mantengo: https://github.com/serprex/pythonaes –

Cuestiones relacionadas