Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #cryptoChallenge
- import random
- text = "2×2=5"
- def enc(text):
- limiter = chr(2**(2*2*2+2)+2**(2*2+1)-2)
- key = [ord(random.choice(text)) for x in range(2)]
- res = [str(bin(ord(x)*key[0]-key[1])) for x in text[::-1]]
- return '{0}{1}{2}'.format(str(bin(key[0]**2))+limiter, limiter.join(res), limiter + str(bin(key[1]**2))).replace('0b', '').replace(chr(2**(2*2+1)+2**(2+2)+1), chr(2**(2*2+2)+2**(2+2)-1))
- def dec(text):
- limiter = chr(2**(2*2*2+2)+2**(2*2+1)-2)
- data = [int('0b'+x, 2) for x in text.replace(chr(2**(2*2+2)+2**(2+2)-1), chr(2**(2*2+1)+2**(2+2)+1)).split(limiter)]
- key = [int(data[0]**(1/2)), int(data[-1]**(1/2))]
- return ''.join([chr(int((x+key[1])/key[0])) for x in data[1:-1][::-1]])
- encrypted = enc(text)
- print(encrypted)
- decrypted = dec(encrypted)
- print(decrypted)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement