对于某些敏感数据,我决定将其存储在光盘上进行AES加密。我使用PyCrypto实现了加密。
此外,数据很重要,存储的加密数据将是我唯一的副本(备份除外),因此我寻找一些检索数据的方法,而不使用PyCrypto进行回退,因为PyCrypto可能是我不再使用(无论出于何种原因)。
我认为mcrypt可能是一种选择。
这是我的测试用例,用于编写一些密文:
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 ) )
我将输出重定向到文件out.nc
并尝试通过
mcrypt -d -b -k qwertzuiopasdfgh -a rijndael-128 -m CBC out.nc
但遗憾的是,生成的文件out
的字节大小为零。
我希望mcrypt有一系列选项可以让这项工作......
答案 0 :(得分:1)
我认为问题可能在于你没有为CBC模式提供IV而没有IV可能mCrypt和PyCrypto通过使用不同的默认IV来区别对待它。我已经看到一些实现(例如phpseclib)使用和默认情况下16个空字节的IV。 mcrypt可能不这样做。
答案 1 :(得分:-1)
为什么没有PyCrypto能够恢复很重要?您可以使用旧操作系统和旧版本的PyCrypto启动虚拟机,导出数据,并使用不同的算法和实现重新加密。