我正在寻找一种方法来使用pycrypto包中的加密算法,它允许我加密原始的大块数据,然后只解密这些数据的中间块。换句话说,从某个偏移量开始解密数据,而不是从偏移量0开始解密。
我已经尝试过AES,你可以在下面看到。但是,只有当我从解密数据的beg转到我真正需要解密的部分时,它才允许我正确地解密数据,而不是仅仅解密中间的数据块(当然是用正确的密钥),并跳过在这个中间块之前的解密部分。这对于节省时间和处理能力很重要。假设你有一个4 4GB的原始数据。在某个时间点,您只需要偏移量为3 3GB 3.5 3GB的数据。解密整个2 2GB的数据以获得所需的1 2GB数据块是浪费时间和资源……
这是所有加密/解密算法的本质吗?也许你可以推荐一些我想要的东西?它与密钥一起工作,并且非常安全。
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:])发布于 2011-11-25 03:56:37
如果您使用CTR (counter)模式,则可以进行随机访问。
https://stackoverflow.com/questions/8261535
复制相似问题