chiffrement AES avec PyCrypto et décryptage avec mcrypt
-
22-09-2019 - |
Question
Pour certaines données sensibles, j'ai décidé de le stocker AES-crypté sur le disque. Je l'ai mis en place le cryptage en utilisant PyCrypto .
En outre, les données sont importantes, et les données cryptées stockées sera ma seule copie (sauvegarde de côté), donc je cherché un moyen de récupérer les données sans utiliser PyCrypto d'avoir une solution de repli étant donné la possibilité que PyCrypto est pas plus disponible pour moi (pour une raison quelconque qui peut être).
Je pensais que mcrypt pourrait être une option.
Ceci est mon cas de test pour obtenir un peu de cryptogramme écrit:
import Crypto.Cipher.AES
import sys
pwd = 'qwertzuiopasdfgh'
mode = Crypto.Cipher.AES.MODE_CBC
aes = Crypto.Cipher.AES.new( pwd, mode )
text = 'asdfghjklyxcvbnm'
sys.stdout.write( aes.encrypt( text ) )
Je redirigés vers la sortie à un out.nc
de fichier et essayé par le déchiffrement
mcrypt -d -b -k qwertzuiopasdfgh -a rijndael-128 -m CBC out.nc
mais le fichier résultant out
a une taille zéro octets, malheureusement.
J'espère qu'il y est une combinaison d'options pour mcrypt pour faire ce travail ...
La solution
Pourquoi est-il important d'être en mesure de récupérer sans PyCrypto? Vous pouvez simplement lancer une machine virtuelle avec l'ancien système d'exploitation et l'ancienne version de PyCrypto, exporter vos données et Rechiffrer avec un algorithme et la mise en œuvre différente.
Autres conseils
Je pense que le problème peut poser dans le fait que vous ne fournissez pas IV pour le mode CBC et sans IV peut-être Mcrypt et PyCrypto gérer différemment en utilisant différentes IVs par défaut. J'ai vu quelques implémentations (phpseclib par exemple) utiliser et IV de 16 octets nuls par défaut. mcrypt pourrait ne pas le faire.