Advertisement
skotoseme

dalia

May 12th, 2014
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.97 KB | None | 0 0
  1. def otp(a, b, mode):
  2.     """one-time pad
  3.   mode=0: encrypt; mode=1: decrypt"""
  4.     a, b = otpformat(a), otpformat(b)
  5.     output = ''
  6.     i = 0
  7.     if mode == 0: sign = 1
  8.     elif mode == 1: sign = -1
  9.     for letter in a:
  10.         output += chr((((ord(letter)-65)
  11.                + (ord(b[i%len(b)])-65)*sign)%26) + 65)
  12.         i += 1
  13.     return output
  14.  
  15. def otpformat(a):
  16.     a = a.replace(' ','')
  17.     a = a.upper()
  18.     return a
  19.  
  20. # m='polloesloco'; c='hvcpsjwcgjf'; k = 'IHJEEFEJIHJ'
  21. m='abc'; k='azy'; c = otp(m,k,0)
  22.  
  23. def makenum(a):
  24.     output = []
  25.     a = otpformat(a)
  26.     for letter in a:
  27.         output.append(ord(letter) - 65)
  28.         print letter,ord(letter) - 65
  29.     return output
  30.  
  31. def subber(c,m):
  32.     output = []
  33.     for i in range(len(c)):
  34.         j = c[i]-m[i]
  35.         if j < 0:
  36.             j = j+26
  37.         output.append(j)
  38.     return output
  39.  
  40. m = makenum('polloesloco')
  41. c = makenum('hvcpsjwcgjf')
  42. k = subber(c,m)
  43. print m
  44. print c
  45. print k
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement