PyCrypto

PyCrypto est un module permettant de faire de la cryptographie implémentant plusieurs algorithmes et protocole.

On peux avoir plus d’information sur l’url https://www.dlitz.net/software/pycrypto/

Son installation est simple et utilise pip ou easy_install

easy_install pycrypto

Cette installation est pourtant difficile sous windows à cause de l’utilisation de librairie native.

Il est possible d’avoir une version précompilé sur l’url http://www.voidspace.org.uk/python/modules.shtml#pycrypto

Par la suite son utilisation est simple

Un exemple d’utilisation de SHA256

>>> from Crypto.Hash import SHA256
>>> hash = SHA256.new()
>>> hash.update('message')
>>> hash.digest()
'\xabS\n\x13\xe4Y\x14\x98+y\xf9\xb7\xe3\xfb\xa9\x94\xcf\xd1\xf3\xfb"\xf7\x1c\xea\x1a\xfb\xf0+F\x0cm\x1d'

Utilisation d’un module pour crypter un message

>>> from Crypto.Cipher import AES
>>> obj = AES.new('This is a key123', AES.MODE_CBC, 'This is an IV456')
>>> message = "The answer is no"
>>> ciphertext = obj.encrypt(message)
>>> ciphertext
'\xd6\x83\x8dd!VT\x92\xaa`A\x05\xe0\x9b\x8b\xf1'
>>> obj2 = AES.new('This is a key123', AES.MODE_CBC, 'This is an IV456')
>>> obj2.decrypt(ciphertext)
'The answer is no'