Longに収まるよりも長くなる可能性がある16進文字列でビット単位の操作(暗号の場合はほとんどxorの場合)を実行できる方法を探しています。例として、他のデータと xor したい長い 16 進リテラルを使用できます。以下は、私がやりたいことと現在どのように行っているかの例ですが、ある制限でコンピューターが Long に入れることができる限界に達すると信じているので、どうすればこれをより確実に行うことができますか?
#assuming lengths of messages are correct and key length as well
old_hex = "top secret ascii message".encode('hex')
encoded = "09e1c5f70a65ac56e55ac519458e7e53f36" #a literal hex encoded string
key_hex = int(old_hex,16) ^ int(encoded,16) #this currently works because this fits in Long
new_hex = "my new message to send 2".encode('hex')
ans_hex = key_hex ^ int(new_hex,16)
print 'old message in hex: 0x'+old_hex
print 'found a key in hex: '+str(hex(key_hex))
print 'new message in hex: 0x'+new_hex
print 'new message encode: '+str(hex(ans_hex))
したがって、これよりも長い文字列で XOR を実行したいと思いますが、Long 変数に収まらないのではないかと心配しています。どうすればこれを回避できますか? 文字列を小さなチャンクに分割し、各部分を操作する必要がありますか?