Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. import base64
  2. from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
  3. from cryptography.hazmat.primitives import padding
  4. from cryptography.hazmat.backends import default_backend
  5. from django.utils.encoding import force_bytes, force_text
  6.  
  7. SECRET_KEY = "hellomotherfucker"
  8. value = force_bytes("12345678901234567890")
  9.  
  10. backend = default_backend()
  11. key = force_bytes(base64.urlsafe_b64encode(force_bytes(SECRET_KEY))[:32])
  12.  
  13.  
  14. class Crypto:
  15.  
  16. def __init__(self):
  17. self.encryptor = Cipher(algorithms.AES(key), modes.ECB(), backend).encryptor()
  18. self.decryptor = Cipher(algorithms.AES(key), modes.ECB(), backend).decryptor()
  19.  
  20. def encrypt(self):
  21. padder = padding.PKCS7(algorithms.AES(key).block_size).padder()
  22. padded_data = padder.update(value) + padder.finalize()
  23. encrypted_text = self.encryptor.update(padded_data) + self.encryptor.finalize()
  24. return encrypted_text
  25.  
  26. def decrypt(self, value):
  27. padder = padding.PKCS7(algorithms.AES(key).block_size).unpadder()
  28. decrypted_data = self.decryptor.update(value)
  29. unpadded = padder.update(decrypted_data) + padder.finalize()
  30. return unpadded
  31.  
  32.  
  33. if __name__ == '__main__':
  34. print('>>>>>>>>>>>')
  35. crypto = Crypto()
  36. text = force_text(base64.urlsafe_b64encode(crypto.encrypt()))
  37. print(text)
  38. print('<<<<<<<<<<<<<')
  39. text = force_text(crypto.decrypt(base64.urlsafe_b64decode(text)))
  40. print(text)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement