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("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") print("Decrypted:", decrypted)
Standard input is empty
('Original:', 'Hello from Python AES-GCM!') ('Encrypted:', 'BOpCPVvFm8rUUY9087Lu4Uov0FJ7aV2ld0cLFEarqJNmzIcQVUW0B1tLou0vVQhXmhJ6Sve7') ('Decrypted:', u'{"data":{"dataArray":[{"property":[{"queryData":{"PROPERTY_ID":"ID1753184908749122187987482"},"updateData":{"KEY_VAL":"uejhhmlojkkwe.gzairtech.gzair.clouzer.com#PRJ_ORG_WKS_1753186500439_4456","CML_TITLE":"python hub","orgTitle":"gzairtech.gzair.clouzer.com","linkPrpKey":""}}],"role":[{"queryData":{"ID":"ID1753186306441942100723812"},"updateData":{"KEY_VAL":"uejhhmlojkkwe.gzairtech.gzair.clouzer.com#PRJ_ORG_WKS_1753186500439_4456#SEC_WIZ_ROLE_0001#TSK_ROL_LST_0002"}},{"queryData":{"ID":"ID1753186306446064792127506"},"updateData":{"KEY_VAL":"uejhhmlojkkwe.gzairtech.gzair.clouzer.com#PRJ_ORG_WKS_1753186500439_4456#SEC_WIZ_ROLE_0001#TSK_ROL_LST_1753186519863635"}},{"queryData":{"ID":"ID1753186306782115737948049"},"updateData":{"KEY_VAL":"uejhhmlojkkwe.gzairtech.gzair.clouzer.com#PRJ_ORG_WKS_1753186500439_4456#SEC_WIZ_ROLE_0001#TSK_ROL_LST_1753186520360550"}},{"queryData":{"ID":"ID1753186306755595549796000"},"updateData":{"KEY_VAL":"uejhhmlojkkwe.gzairtech.gzair.clouzer.com#PRJ_ORG_WKS_1753186500439_4456#SEC_WIZ_ROLE_0001#TSK_ROL_LST_1753186520390723"}},{"queryData":{"ID":"ID1753186306277888081918260"},"updateData":{"KEY_VAL":"uejhhmlojkkwe.gzairtech.gzair.clouzer.com#PRJ_ORG_WKS_1753186500439_4456#SEC_WIZ_ROLE_0001#TSK_ROL_LST_1753186520664277"}}],"structure":[{"queryData":{"STRUCTURE_ID":"ID175318643881532935497825"},"updateData":{"KEY_VAL":"uejhhmlojkkwe.gzairtech.gzair.clouzer.com#PRJ_ORG_WKS_1753186500439_4456#SEC_WIZ_LYT_0057#TSK_LST_FLR_1753186510068_82","CML_TITLE":"floor"}},{"queryData":{"STRUCTURE_ID":"ID1753186451562164771747562"},"updateData":{"KEY_VAL":"uejhhmlojkkwe.gzairtech.gzair.clouzer.com#PRJ_ORG_WKS_1753186500439_4456#SEC_FLR_1753186510173_59#TSK_PRO_ROM_ORG_1753186514673_94","CML_TITLE":"room"}}],"devices":[],"groups":[],"userlist":[],"department":[{"queryData":{"DEPARTMENT_ID":"ID1753184908438715682388610"},"updateData":{"KEY_VAL":"gzairtech.gzair.clouzer.com#PRJ_DEPT_ORG_1744353789113_4332","CML_TITLE":"App Department","CML_COUNTRY":"India","CML_STATE":"Maharashtra","CML_CITY":"Pune","CML_LOCATION":"Tianhe District, Guangzhou, Guangdong Province, China","CML_IS_ENTERPRISE":1}}],"orgnisation":[{"queryData":{"ORGNISATION_ID":"ID1753184908446305470066877"},"updateData":{"KEY_VAL":"gzairtech.gzair.clouzer.com#PRJ_ORG_WKS_1744283870994_6030","CML_TITLE":"GZAirTech","CML_COUNTRY":"China","CML_STATE":"Maharashtra","CML_CITY":"Pune","CML_LOCATION":"Tianhe District, Guangzhou, China, 510635","CML_IS_ENTERPRISE":1}}],"clz_main_org":[{"queryData":{"CLZ_MAIN_ORG_ID":"ID1753184908864016528256238"},"updateData":{"KEY_VAL":"enviroklenz.clouzer.com#PRJ_ORG_WKS_1700464489022_4230","CML_TITLE":"EnviroKlenz","CML_COUNTRY":"United States","CML_STATE":"Florida","CML_CITY":"Lee County","CML_LOCATION":"Bonita Springs, FL, USA","CML_IS_ENTERPRISE":1}}],"clz_property":[{"queryData":{"CLZ_PROPERTY_ID":"ID1753184908799825631510029"},"updateData":{"KEY_VAL":"uejhhmlojkkwe.gzairtech.gzair.clouzer.com#PRJ_ORG_WKS_1753186500439_4456","CML_TITLE":"python hub","CML_COUNTRY":"India","CML_STATE":"Maharashtra","CML_CITY":"Pune","CML_LOCATION":"Pune, Maharashtra, India","CML_IS_ENTERPRISE":1}}],"sync_meta_data":[{"queryData":{"ID":"ID175318490846138143341233"},"updateData":{"HUB_SERIAL_ID":"","entity_type":"sync_meta_data","SYNC_TIMESTAMP":0}}],"location":[{"queryData":{"LOCATION_ID":"ID1753184908886252382888389"},"updateData":{"CML_LOCATION":"Pune, Maharashtra, India","ADDRESS_LINE1":"Pune, Maharashtra, India","CML_CITY":"Pune","CML_STATE":" Maharashtra","CML_COUNTRY":" India","CML_ZIPCODE":"411038","CML_TIMEZONE":"Asia/Kolkata","CML_CONTINENT":"NA","CML_COUNTRY_CODE":"IN","CML_LATITUDE":"18.5246091","CML_LONGITUDE":"73.8786239"}}]}],"requestId":"system_generated#1753186498251_8864","userId":"9C:30:5B:A5:F8:1F","connectionProtocol":"MQTT","connectionId":"system_generated#1753186498251_8864","clientId":"CLOUDS","CallerInfo":{"source":["CLOUDS"],"caller":"be_internal_clouds"}},"type":"bulk_update"}')