Pergunta

Para alguns dados confidenciais, decidi armazená-los, criptografados no disco. Eu implementei a criptografia usando Pycrypto.

Além disso, os dados são importantes e os dados criptografados armazenados serão minha única cópia (backups à parte), então procurei alguns meios de recuperar os dados sem usar o Pycrypto para ter um fallback, dada a possibilidade de que o pycrypto não esteja mais disponível para mim (por qualquer motivo que seja).

Eu pensei McRypt pode ser uma opção.

Este é o meu caso de teste para escrever um texto cifrado:

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

Eu redireci a saída para um arquivo out.nc e tentou descriptografia por

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

Mas o arquivo resultante out Infelizmente, tem tamanho de bytes zero.

Espero que haja uma combinação de opções para McRypt para fazer isso funcionar ...

Foi útil?

Solução

Por que é importante poder se recuperar sem Pycrypto? Você pode simplesmente iniciar uma VM com o sistema operacional antigo e o lançamento antigo do Pycrypto, exportar seus dados e reencrigar com um algoritmo e implementação diferente.

Outras dicas

Eu acho que o problema pode estar no fato de você não fornecer um IV para o modo CBC e sem um IV, talvez McRypt e Pycrypto lidam com isso de maneira diferente usando diferentes IVs padrão. Eu vi algumas implementações (phpseclib, por exemplo) uso e IV de 16 bytes nulos por padrão. McRypt pode não fazer isso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top