Files
pyqcrm/lib/Vermasseln.py
2024-10-31 14:02:56 +01:00

42 lines
1.2 KiB
Python

# This Python file uses the following encoding: utf-8
from Crypto import Random
from Crypto.Cipher import AES
from base64 import b64encode, b64decode
import platform
from Crypto.Hash import SHA256
class Vermasseln:
def oscarVermasseln(self, data):
b_data = data.encode("utf-8")
cipher = self.__vermasslungsKobold()
ciphertext, tag = cipher.encrypt_and_digest(b_data)
decoded_data = [b64encode(x).decode("utf-8") for x in (ciphertext, tag)]
storable_data = ".".join(decoded_data)
return storable_data
def entschluesseln(self, data):
data_list = data.split(".")
encoded_data = [b64decode(x) for x in data_list]
cipher = self.__vermasslungsKobold()
decrypted_data = cipher.decrypt_and_verify(encoded_data[0], encoded_data[1])
decrypted_data = decrypted_data.decode("utf-8")
return decrypted_data
def __vermasslungsKobold(self):
key = platform.processor().encode("utf-8")
key = key[0:31]
hash_key = SHA256.new(key)
hashed = hash_key.digest()
nonce = platform.machine().encode("utf-8")
cipher = AES.new(hashed, AES.MODE_SIV, nonce = nonce)
return cipher
print(Vermasseln().oscarVermasseln("irgendeinenText"))