Init commit
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
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, 'кот'))
|
||||
Reference in New Issue
Block a user