Pregunta

Para algunos datos sensibles decidí guardarlo AES-cifrado en el disco. He aplicado el cifrado usando PyCrypto .

Por otra parte, los datos son importantes, y los datos cifrados almacenados será mi única copia del mismo (copias de seguridad a un lado), por lo que me puse a buscar algún medio para recuperar los datos sin necesidad de utilizar PyCrypto tener un repliegue dada la posibilidad de que PyCrypto es no ya a mi disposición (por cualquier razón que sea).

mcrypt podría ser una opción.

Esta es mi caso de prueba para conseguir algo de texto cifrado escrito:

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 ) )

redirige la salida a un archivo out.nc y descifrado juzgado por

mcrypt -d -b -k qwertzuiopasdfgh -a rijndael-128 -m CBC out.nc

out pero el archivo resultante tiene cero bytes de tamaño, por desgracia.

Espero que haya una combinación de opciones a mcrypt para hacer este trabajo ...

¿Fue útil?

Solución

¿Por qué es importante ser capaz de recuperarse sin PyCrypto? Simplemente puede encender una máquina virtual con el viejo sistema operativo y la antigua versión de PyCrypto, exportar los datos, y volver a cifrar con un algoritmo y la implementación diferente.

Otros consejos

Creo que el problema puede sentar en el hecho de que no se proporciona una vía intravenosa para el modo CBC y sin IV quizá Mcrypt y PyCrypto manejan de forma diferente mediante el uso de diferentes vías intravenosas por defecto. He visto algunas implementaciones (phpseclib por ejemplo) uso y IV de 16 nulo bytes por defecto. mcrypt podría no hacerlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top