
import json
import base64
import rncryptor  # pip install python-rncryptor

# ---- Config ----
SECRET = "2HZEEeaEChhSb7R9UmFhYtdfB6+IPI1JFwjhl1zZ+y/rJN4+Czptwh6G0h3SJbKvDzv0ZKKEO/PUo+3m3ldGzg=="
OFFSET = 4
LENGTH = 32
CRYPTOR = rncryptor.RNCryptor()


def encrypt_value(data: str) -> str:
    """
    Encrypt a plain string and return Base64 encoded ciphertext.
    """
    pwd = SECRET[OFFSET:OFFSET + LENGTH]
    encrypted = CRYPTOR.encrypt(data, pwd)
    return base64.b64encode(encrypted).decode("utf-8")


def decrypt_value(data: str) -> str:
    """
    Decrypt a Base64 encoded ciphertext and return plain string.
    """
    pwd = SECRET[OFFSET:OFFSET + LENGTH]

    # Ensure proper Base64 padding
    padding = 4 - (len(data) % 4)
    if padding and padding != 4:
        data += "=" * padding

    raw_bytes = base64.b64decode(data)
    decrypted = CRYPTOR.decrypt(raw_bytes, pwd)
    return decrypted
