summaryrefslogtreecommitdiff
path: root/binary/encrypt_data.py
blob: 6f88280a7d04207deb25dd8083f17981cc8df5f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import base64

from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import hashes
from cryptography.fernet import Fernet


class Encryption:
  def __init__(self, password='ksxgyRuBRJLKxjFeHD4nmxbE', salt=b'v4CuHZFzmTedBY2EBGrLRXsm'):
    self.password = password
    self.salt = salt
    self.key = Fernet(self.generate_key())


  def generate_key(self):
    kdf = PBKDF2HMAC(algorithm=hashes.SHA256(), length=32, salt=self.salt, iterations=100000, backend=default_backend())
    return base64.urlsafe_b64encode(kdf.derive(self.password.encode()))


  def do_encrypt(self, message):
    return self.key.encrypt(message)


  def do_decrypt(self, ciphertext):
    return self.key.decrypt(ciphertext)