3

对于一些敏感数据,我决定将其以 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 有多种选择来完成这项工作……</p>

4

2 回答 2

1

我认为问题可能在于您没有为 CBC 模式提供 IV,并且没有 IV,mCrypt 和 PyCrypto 可能通过使用不同的默认 IV 以不同方式处理它。我已经看到一些实现(例如 phpseclib)默认使用 16 个空字节的 IV。mcrypt 可能不会这样做。

于 2011-12-09T12:55:12.987 回答
-1

为什么在没有 PyCrypto 的情况下能够恢复很重要?您可以简单地使用旧操作系统和 PyCrypto 的旧版本启动 VM,导出数据,并使用不同的算法和实现重新加密。

于 2010-03-24T23:05:03.013 回答