This repository has been archived on 2025-01-28. You can view files and clone it, but cannot push or open issues or pull requests.
natsuko/utils/XOR.py
2023-05-11 15:17:14 +03:00

50 lines
1.1 KiB
Python

def char_encode(text, key):
itext = ''
ikey = ''
out = ''
for char in text:
char = str(bin(ord(char)))
char = char.replace('0b', '')
while len(char) < 16:
char = '0' + char
itext += char
for char in key:
char = str(bin(ord(char)))
char = char.replace('0b', '')
while len(char) < 16:
char = '0' + char
ikey += char
if len(itext) > len(ikey):
tmp = ikey
ikey = tmp * int(len(itext) / len(tmp))
ikey += tmp[:(len(itext) % len(tmp))]
for i in range(len(itext)):
a = itext[i]
b = ikey[i]
if a == b:
out += '0'
else:
out += '1'
tmp = list(out)
out = ''
while len(tmp) >= 16:
char = ''.join(tmp[:16])
char = int(char, 2)
out += chr(char)
del tmp[:16]
return out
if __name__ == '__main__':
cat = char_encode('123123', 'кот')
print(cat)
print(char_encode(cat, 'кот'))