我正在寻找一种使用 pycrypto 包中的加密算法的方法,该算法允许我加密原始的 LARGE 数据,然后仅解密该数据的 MIDDLE 块。换句话说,从某个偏移量开始解密数据,而不是从偏移量 0 开始解密。
我已经尝试过 AES,如下所示。但是,如果我从加密数据的请求到我真正需要解密的部分,它只允许我正确解密数据,而不是仅仅解密中间的数据块(当然使用正确的密钥),并跳过解密这个中间块之前的部分。这对于节省时间和处理能力很重要。假设您有一个 4GB 的原始数据。在某个时间点,您只需要偏移 3GB-3.5GB 的数据。解密整个 2GB 数据以获得所需的 1GB 块是浪费时间和资源......
这是所有加密/解密算法的本质吗?也许你可以推荐一些我想要的东西?这与密钥一起使用并且非常安全..
from Crypto.Cipher import AES
key = '0123456789abcdef' #16 chars
mode = AES.MODE_CBC
e = AES.new(key, mode)
orig = 'hellohowareyousuhellohowareyousu' #32 chars
print len(orig)
a = e.encrypt(orig)
print len(a)
d = AES.new(key, mode)
#works
print d.decrypt(a[:16]) #aes requires encrypt/decrypt 16 chars at a time
print d.decrypt(a[16:])
#doesn't work
print d.decrypt(a[16:])