Я искал способ использовать алгоритм шифрования из пакета pycrypto, который позволил бы мне зашифровать оригинальный БОЛЬШОЙ фрагмент данных, а затем расшифровать только СРЕДНИЙ фрагмент данных. Другими словами, начинайте расшифровывать данные с определенным смещением, вместо того чтобы начинать расшифровывать их со смещением 0.
Я пробовал AES, как вы можете видеть ниже. Но это позволяет мне правильно расшифровывать данные только в том случае, если я перехожу от начала к зашифрованным данным к той части, которую мне действительно нужно расшифровать, вместо того, чтобы просто расшифровывать средний кусок данных (конечно, с соответствующим ключом) и пропустить дешифрование части до этого среднего куска. Это важно для экономии времени и вычислительной мощности. Допустим, у вас есть оригинальные данные 4 ГБ. В какой-то момент времени вам нужны только данные со смещением 3GB-3,5GB. Расшифровка всего 2 ГБ данных для получения необходимого вам фрагмента 1 ГБ - пустая трата времени и ресурсов ...
Это природа всех алгоритмов шифрования / дешифрования? Возможно, вы можете порекомендовать то, что делает то, что я хочу? Это работает с ключом и довольно безопасно ..
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:])