from Crypto.Cipher import AES
from Crypto.Hash import SHA256
from Crypto import Random
import base64
import urllib
def encrypt_decrypt(action, string, apikey='{your_api_key}', secretkey='{your_secret_key}'):
output = False
encrypt_method = "AES-256-CBC"
secret_key = apikey
secret_iv = secretkey
# hash
key = SHA256.new(secret_key.encode()).digest()[:32]
iv = SHA256.new(secret_iv.encode()).digest()[:16]
if action == 'encrypt':
cipher = AES.new(key, AES.MODE_CBC, iv)
output = base64.b64encode(cipher.encrypt(string.encode())).decode()
output = urllib.parse.quote(output)
elif action == 'decrypt':
cipher = AES.new(key, AES.MODE_CBC, iv)
output = cipher.decrypt(base64.b64decode(urllib.parse.unquote(string))).decode()
return output
(huhuhaha) = encrypt_decrypt("g5Sv8TreCz5Kq9stPq3vHXVinXgoEJZUmyF%2BYpXI151dOizpJ%2BjTUL03jEydUTAjMriGBwXM1KKVgaTLJuHm%2BlmX6GIcSdn2lU8GfM4rG6%2B0REarulcCvGprkHCjfNVPbjkH%2FHyilR4d8t2ZNjmHVTDjEnpPkvbaAQn53Tcl8MATQX79F10QWh%2FCkKgXezTJv7h0kneuX%2FisNrYyrqcX6xb2CcWij1Os9PImoj8Icucfn7JKyniLEvHhubOJ6w9QnWbY0Dszle9MjfVV1q322NC0JxhbF31ecnNP9%2B%2BDg%2Fuy08vpJAoCBQJ%2Fn8JYGO9eZLJi%2BcFcE%2FQZEyjoEacQ4ZWR1ww0E1U4pDF73oWwgO7Ha%2Bggu6DkaJ7C7OPqJyoCuj%2Fv09DwlGcXlTy9jTRshA%3D%3D", "decrypt", "HdwV6Rl4r0wbP85q6Lz%2FDQ%3D%3D", "hK2yvxhazt934Y6mjqTcFSqxBipA4i%2BA9dDcgt7q7J4%3D")
print(huhuhaha)
ZnJvbSBDcnlwdG8uQ2lwaGVyIGltcG9ydCBBRVMKZnJvbSBDcnlwdG8uSGFzaCBpbXBvcnQgU0hBMjU2CmZyb20gQ3J5cHRvIGltcG9ydCBSYW5kb20KaW1wb3J0IGJhc2U2NAppbXBvcnQgdXJsbGliCgpkZWYgZW5jcnlwdF9kZWNyeXB0KGFjdGlvbiwgc3RyaW5nLCBhcGlrZXk9J3t5b3VyX2FwaV9rZXl9Jywgc2VjcmV0a2V5PSd7eW91cl9zZWNyZXRfa2V5fScpOgogICAgb3V0cHV0ID0gRmFsc2UKICAgIGVuY3J5cHRfbWV0aG9kID0gIkFFUy0yNTYtQ0JDIgogICAgc2VjcmV0X2tleSA9IGFwaWtleQogICAgc2VjcmV0X2l2ID0gc2VjcmV0a2V5CgogICAgIyBoYXNoCiAgICBrZXkgPSBTSEEyNTYubmV3KHNlY3JldF9rZXkuZW5jb2RlKCkpLmRpZ2VzdCgpWzozMl0KICAgIGl2ID0gU0hBMjU2Lm5ldyhzZWNyZXRfaXYuZW5jb2RlKCkpLmRpZ2VzdCgpWzoxNl0KCiAgICBpZiBhY3Rpb24gPT0gJ2VuY3J5cHQnOgogICAgICAgIGNpcGhlciA9IEFFUy5uZXcoa2V5LCBBRVMuTU9ERV9DQkMsIGl2KQogICAgICAgIG91dHB1dCA9IGJhc2U2NC5iNjRlbmNvZGUoY2lwaGVyLmVuY3J5cHQoc3RyaW5nLmVuY29kZSgpKSkuZGVjb2RlKCkKICAgICAgICBvdXRwdXQgPSB1cmxsaWIucGFyc2UucXVvdGUob3V0cHV0KQogICAgZWxpZiBhY3Rpb24gPT0gJ2RlY3J5cHQnOgogICAgICAgIGNpcGhlciA9IEFFUy5uZXcoa2V5LCBBRVMuTU9ERV9DQkMsIGl2KQogICAgICAgIG91dHB1dCA9IGNpcGhlci5kZWNyeXB0KGJhc2U2NC5iNjRkZWNvZGUodXJsbGliLnBhcnNlLnVucXVvdGUoc3RyaW5nKSkpLmRlY29kZSgpCgogICAgcmV0dXJuIG91dHB1dAoKKGh1aHVoYWhhKSA9IGVuY3J5cHRfZGVjcnlwdCgiZzVTdjhUcmVDejVLcTlzdFBxM3ZIWFZpblhnb0VKWlVteUYlMkJZcFhJMTUxZE9penBKJTJCalRVTDAzakV5ZFVUQWpNcmlHQndYTTFLS1ZnYVRMSnVIbSUyQmxtWDZHSWNTZG4ybFU4R2ZNNHJHNiUyQjBSRWFydWxjQ3ZHcHJrSENqZk5WUGJqa0glMkZIeWlsUjRkOHQyWk5qbUhWVERqRW5wUGt2YmFBUW41M1RjbDhNQVRRWDc5RjEwUVdoJTJGQ2tLZ1hlelRKdjdoMGtuZXVYJTJGaXNOcll5cnFjWDZ4YjJDY1dpajFPczlQSW1vajhJY3VjZm43Skt5bmlMRXZIaHViT0o2dzlRbldiWTBEc3psZTlNamZWVjFxMzIyTkMwSnhoYkYzMWVjbk5QOSUyQiUyQkRnJTJGdXkwOHZwSkFvQ0JRSiUyRm44SllHTzllWkxKaSUyQmNGY0UlMkZRWkV5am9FYWNRNFpXUjF3dzBFMVU0cERGNzNvV3dnTzdIYSUyQmdndTZEa2FKN0M3T1BxSnlvQ3VqJTJGdjA5RHdsR2NYbFR5OWpUUnNoQSUzRCUzRCIsICJkZWNyeXB0IiwgIkhkd1Y2Umw0cjB3YlA4NXE2THolMkZEUSUzRCUzRCIsICJoSzJ5dnhoYXp0OTM0WTZtanFUY0ZTcXhCaXBBNGklMkJBOWREY2d0N3E3SjQlM0QiKQoKcHJpbnQoaHVodWhhaGEp