Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from random import randrange
- def otp(a, b, mode):
- """one-time pad
- mode=0: encrypt; mode=1: decrypt"""
- a, b = otpformat(a), otpformat(b)
- output = ''
- i = 0
- if mode == 0: sign = 1
- elif mode == 1: sign = -1
- for letter in a:
- output += chr((((ord(letter)-65)
- + (ord(b[i%len(b)])-65)*sign)%26) + 65)
- i += 1
- return output
- def otpformat(a):
- a = a.replace(' ','')
- a = a.upper()
- return a
- def otpgen(length):
- """one-time pad key generator"""
- output = ''
- for i in range(length):
- output += chr(randrange(65,91))
- return output
- def xor(a, b):
- """exclusive or"""
- output = ''
- i = 0
- for bit in a:
- if bit == b[i % len(b)]:
- output += '0'
- elif bit != b[i % len(b)]:
- output += '1'
- i += 1
- return output
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement