Я новичок в этой области, вы мне поможете? Каждый байт в моем шифрованном тексте (encrypt3) интерпретируется как целое число от 0 до 255. Для каждого байта Plaintext = Ciphertext -100 (mod 256). В следующем коде у меня есть ошибка: newbyte = c.to_bytes (1, byteorder = sys.byteorder, signed = False) OverflowError: невозможно преобразовать отрицательный int в unsigned Любая помощь будет оценена.Криптография с питоном
import sys
f=open("encrypt3.dat","rb")
s=f.read(100)
d=bytearray(s)
print (len(d))
strnew=''
newbyte=b''
for c in d :
c=c-100 % 256
newbyte=c.to_bytes(1,byteorder=sys.byteorder,signed=True)
strnew=strnew + newbyte.decode('latin1')
print(strnew)
Вы фактически используете байтовый Цезарский шифр. Чтобы перейти от Цезарного шифра, посмотрите на [Vigenère] (https://en.wikipedia.org/wiki/Vigenère_cipher) или, возможно, [RC4] (https://en.wikipedia.org/wiki/RC4) для вашего следующего исследования шифрования. Вы преуспели в реализации байт-реализации, а не на основе алфавита. – rossum