Pourquoi PyCrypto n'utilise-t-il pas l'IV par défaut?

Je suis à essayer de comprendre pourquoi mon client Python et Ruby le serveur ont un différend sur la façon de crypter les données. La seule différence que je vois dans le code Ruby et mon code, c'est qu'ils ne sont pas en spécifiant le Vecteur d'Initialisation, donc de revenir à la valeur par défaut de tous les \x0 est

Lorsque j'essaie d'instancier PyCrypto sans le iv, il me donne une erreur. Voici un exemple:

from Crypto.Cipher import AES
test = "Very, very confidential data"
key = b'Thirty Two Byte key, made Beef y' 

gryp = AES.new(key, AES.MODE_CBC)

(Cet exemple est essentiellement le code d'exemple de la PyCrypto docs sans préciser le IV) Les docs disent w/r/t, le IV " Il est facultatif et s'il est absent, il sera donné une valeur par défaut de tous les zéros." Cependant, je reçois le message d'erreur "ValueError: IV doit être de 16 octets de long".

Afin que je puisse spécifier le IV, qui n'est pas le problème de pré soi, mais je suis en train de comprendre que si il pense qu'il ne peut pas utiliser la valeur par défaut, si il y a autre chose de mal avec la façon dont je suis l'aide de la bibliothèque.

source d'informationauteur zenWeasel