Pycrypto aes 256 vecteur d'Initialisation de la taille

ici est le cas, j'ai un script php qui utilise aes256 ,CBC
les clés et IV de la taille de 32 octets de long

data= '123456789abcdef' 
from Crypto.Cipher import AES
a = AES.new('oqufXQ(?bc=6_hR2I3sMZChDpb6dDlw4',2,'fOaiIOkD8*9Xeu_s4_bb87Ox_UG+D9GA')
print a.encrypt(data)

et l'erreur que j'ai eu

<type 'exceptions.ValueError'>: IV must be 16 bytes long
Traceback (most recent call last):
  File "/base/data/home/apps/s~xxxxxxx/1.155074369696961822/main.py", line 4, in <module>

code php qui fonctionne

 echo base64_encode(encrypt('0123456789abcdef'))  ;


 function encrypt($data)
  {
    return mcrypt_encrypt(MCRYPT_RIJNDAEL_256 ,'oqufXQ(?bc=6_hR2I3sMZChDpb6dDlw4', $data , MCRYPT_MODE_CBC, utf8_encode('fOaiIOkD8*9Xeu_s4_bb87Ox_UG+D9GA') );
  }

Je ne peux pas changer le IV de taille

Remarque que je ne suis Pas très Familier Avec Python, Juste Besoin d'un moyen de chiffrer les données qu'il sera l'un appengine .

Vous ne pouvez pas changer le IV de taille. AES 256 est un chiffrement par bloc, avec une taille de bloc de 16, de sorte que lorsque utilisé dans n'importe quel type de modes de chiffrement qui utilise un IV, le IV est un gros bloc, c'est à dire 16 octets.
mon script php est à l'aide d'un 32 octets de la chaîne aléatoire comme IV , suis-je en train de faire quelque chose de mal? mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC); retourne 32
Désolé, je ne sais pas alors. Je m'attends à ce AES256 en mode CBC à utiliser un bloc de IV, qui est XORed avec le premier bloc de texte en clair avant le chiffrement du texte en clair. Si mcrypt fait quelque chose de différent qui implique une autre de 16 octets de IV, alors il n'est pas à l'aide de la CBC mode de chiffrement comme I le comprendre, ce qui signifie qu'il ne va pas à inter-opérer avec une mise en œuvre qui fonctionne de la façon dont je le comprends. Je ne prétends pas que ma compréhension est un gros problème, mais il correspond au message d'erreur que vous obtenez à partir de pycrypto, donc je pense que les modes de chiffrement en quelque sorte ne sont pas appariés.
Oh, je suppose qu'une chose à vérifier est de savoir si mcrypt est à l'aide de pbkdf2 ou quelque chose de manipuler les soi-disant IV de la donner, et en utilisant une partie de la suite de cela que les vrais IV.
ajouté le code php qui permet de crypter l'amende, je ne pense pas que ses utilisations pbkdf2 à dériver de nouvelles IV, ne sais pas si php ne que par défaut

OriginalL'auteur user80287 | 2011-12-01