import base64
import os
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
base64_key = "nCrksJzTgZCK3zPYH2z0oHDM6Py2mThHcjqxGPpR6nA="
def encrypt(plaintext):
key = base64.b64decode(base64_key)
aesgcm = AESGCM(key)
nonce = os.urandom(12)
plaintext_bytes = plaintext.encode('utf-8')
ciphertext = aesgcm.encrypt(nonce, plaintext_bytes, None)
encrypted = nonce + ciphertext
return base64.b64encode(encrypted)
def decrypt(encrypted_base64):
try:
if not encrypted_base64:
print("Encrypted input is null or empty")
return ""
key = base64.b64decode(base64_key)
encrypted_bytes = base64.b64decode(encrypted_base64)
if len(encrypted_bytes) < 13:
print("Encrypted input too short")
return ""
nonce = encrypted_bytes[:12]
ciphertext = encrypted_bytes[12:]
aesgcm = AESGCM(key)
plaintext_bytes = aesgcm.decrypt(nonce, ciphertext, None)
return plaintext_bytes.decode('utf-8')
except Exception as e:
print("Decryption failed:", e)
return ""
# Test
if __name__ == "__main__":
original_text = "Hello from Python AES-GCM!"
print("Original:", original_text)
encrypted = encrypt(original_text)
print("Encrypted:", encrypted)
decrypted = decrypt(encrypted)
print("Decrypted:", decrypted)