Форум сайта python.su
def crypt(text,key): CodeList=[ord(char) for char in text] KeyList=[ord(char) for char in key] NewKeyList=KeyList[:] while len(NewKeyList)<len(CodeList): NewKeyList+=KeyList while len(NewKeyList)>len(CodeList): del NewKeyList[-1] EncryptedCodeList=[]; char=0 for char in range(0,len(CodeList)): EncryptedCodeList.append(CodeList[char]^NewKeyList[char]) EncryptedList=[chr(char) for char in EncryptedCodeList ] EncryptedText="".join(EncryptedList) return EncryptedText
Отредактировано don_pedro (Июль 1, 2016 20:40:03)
Офлайн
scidam
Дополнять лучше не нулевыми байтами, а случайными, тогда результат шифрования для одного и того же сообщения будет различный (а это может существенно усложнить расшифровку).
scidam
Вот мой полностью работающий вариант:
>>> padding(b'a' * 15) 'aaaaaaaaaaaaaaa_' >>> padding(b'b' * 15) 'bbbbbbbbbbbbbbb_' >>> padding(b'abc' * 5) 'abcabcabcabcabc_' >>> padding(b'a' * 15)
Офлайн