crittografia AES con pycrypto e decifratura con mcrypt
-
22-09-2019 - |
Domanda
Per alcuni dati sensibili ho deciso di conservarlo AES-cifrati su disco. Ho implementato la crittografia con pycrypto .
Inoltre, i dati sono importanti, ed i dati crittografati memorizzati sarà la mia unica copia (backup a parte), così ho guardato per alcuni mezzi di recupero dei dati senza utilizzare pycrypto di avere un ripiego data la possibilità che pycrypto è non è più disponibile a me (per qualsiasi ragione che potrebbe essere).
mcrypt potrebbe essere un'opzione.
Questo è il mio banco di prova per ottenere un po 'di testo cifrato scritto:
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 ) )
I reindirizzato l'output in un file out.nc
e ho cercato di decifratura da
mcrypt -d -b -k qwertzuiopasdfgh -a rijndael-128 -m CBC out.nc
ma il out
file risultante ha dimensioni pari a zero byte, purtroppo.
spero che ci sia una combinazione di opzioni per mcrypt per fare questo lavoro ...
Soluzione
Perché è importante essere in grado di recuperare senza pycrypto? Si può semplicemente accendere una VM con il vecchio sistema operativo e il vecchio rilascio di pycrypto, esportare i dati, e ri-cifrare con un algoritmo e di attuazione differenti.
Altri suggerimenti
Credo che il problema può fissare nel fatto che non si fornisce un IV per la modalità CBC e senza un IV forse mcrypt e pycrypto gestiscono in modo diverso utilizzando diverse IV predefinite. Ho visto alcune implementazioni (phpseclib per esempio) usa e IV di 16 byte nullo di default. mcrypt non potrebbe farlo.