#!/usr/bin/python3 import os, sys import base64 import hashlib try: from cryptography.hazmat.primitives import padding from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes from cryptography.hazmat.backends import default_backend except ModuleNotFoundError: print("install the cryptography module") sys.exit(0) TDES_IV = b"w1ae5rlz" def hs(data): return data.hex() def get_key_from_user(user): k = base64.b64encode(user.encode('utf-8')).decode('utf-8') if len(k) > 16: k = k[:16] k = k.ljust(16, ' ') return k.encode('utf-8') def make_data(user_name, company_name, show_watermark): return (f"{company_name},{user_name},{1 if show_watermark else 0}").encode('utf-8') def encrypt(raw, key, iv): cipher = Cipher(algorithms.TripleDES(key), modes.CBC(iv), backend=default_backend()) encryptor = cipher.encryptor() padder = padding.PKCS7(64).padder() padded_data = padder.update(raw) + padder.finalize() return encryptor.update(padded_data) + encryptor.finalize() if __name__ == '__main__': user_name = input("Username? ") raw_data = make_data(user_name, "Nintendo Co. Ltd.", True) key = get_key_from_user(user_name) encrypted_data = encrypt(raw_data, key, TDES_IV) with open("Dpr.lic", "wb") as file: file.write(base64.b64encode(encrypted_data)) #