Advertisement
Guest User

Untitled

a guest
Aug 29th, 2016
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1. BS = 16
  2. pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS)
  3. unpad = lambda s : s[:-ord(s[len(s)-1:])]
  4.  
  5. class AESCipher:
  6. def __init__(self,sec_param):
  7. self.sec_param = sec_param
  8. self.key = os.urandom(sec_param)
  9. #msg is string only
  10. def encrypt( self, msg):
  11. msg = pad(msg)
  12. tweak = Random.new().read( AES.block_size )
  13. cipher = AES.new(self.key, AES.MODE_CFB, tweak )
  14. return base64.b64encode(tweak + cipher.encrypt( msg ) )
  15. def decrypt(self, enc):
  16. enc = base64.b64decode(enc)
  17. tweak = enc[:16]
  18. cipher = AES.new(self.key, AES.MODE_CFB, tweak)
  19. return unpad(cipher.decrypt( enc[16:] ))
  20.  
  21. class BC(object):
  22. def __init__(self, sec_param):
  23. self.sec_param = sec_param
  24. def encrypt(self, message):
  25. return AESCipher(sec_param).encrypt(message)
  26. def decrypt(self, encryption):
  27. return AESCipher(self.sec_param).decrypt(encryption)
  28.  
  29. msg = '100011010111110'
  30. sec_param = 16
  31. bc = BC(sec_param)
  32. encr = bc.encrypt(msg)
  33. decr = bc.decrypt(encr)
  34.  
  35. new_cipher = AESCipher(sec_param)
  36. C = new_cipher.encrypt(msg)
  37. D= new_cipher.decrypt(C)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement