API Interface with AES Encryption/Decryption - Example
Example1: GET Request and Response for Task Details
The examples are in Python; the actual implementation language is flexible.
import requests
url = "http://localhost:8000/service/cloud/detail"
aeskey = "airudderredduria" # Encryption key
query_string = "TaskID=69f531a01a9df58aa6de2487be610abb" #Raw data
encrypt_data = aes_encrypt(query_string, aeskey).decode() # AES encryption of raw data
encrypt_sign = sha256_sign(query_string) # Generate SHA256 signature of raw data
print("encrypt_data:", encrypt_data) # Print encrypted data
print("encrypt_sign:", encrypt_sign) # Print signature
# encrypt_data: Print encrypted data
qbj8cnqKnqR66qDS49ib9ymU1mpMCyp8Dm0gS1VvmnEqTxPGSBzruAU1sapP+cye
# query_sign: Encrypted signature
6956d7af4c89b89f19f9ae0a8be4bcf12abe7c6ed893691733f3480ad3f3aabc
url = "{}?{}".format(url, encrypt_data)
headers = {
'Authorization': 'Token sueT3jBg7l9jirwKRZkg4KbxsmIs2hiPQbKLrrNSg8q2UphI4CS3jaV7j34tEt8s',
'Is-Encrypted': '1', # Encryption Mark
'Signed': '6956d7af4c89b89f19f9ae0a8be4bcf12abe7c6ed893691733f3480ad3f3aabc' # Signature in header
}
response = requests.request("GET", url, headers=headers)
print(response.content)
Example2: POST Request and Response for Task Creation
import requests
url = "http://localhost:8000/service/cloud/task"
# Raw data
body = """{
"TaskName": "test_detail_robot_id",
"ScheduleStartTime": "2020-09-15 11:14:37",
"ScheduleEndTime": "2020-09-15 11:18:37",
"RobotID": "Promotion_ID_Jessica_Adakami",
"SIPLine": "FS_Line",
"RepeatInterval": 10,
"RepeatNumber": 3,
"Details": [
{
"Debtor": "y",
"Mobile": "+8612345678",
"LoanDate": "2019-06-01",
"DueDate": "2019-06-10",
"Arrears": 100,
"LoanAmount": 105,
"Unit": "Dollar",
"Platform": "adakami",
"borrower_name": "borrower_name",
"borrower_mobile": "borrower_mobile",
"borrowed_date": "2019-01-01",
"RobotID": "Promotion_ABC_test2"
}
],
"Type": "normal"
}"""
aeskey = "airudderredduria" # Encryption key
encrypt_data = aes_encrypt(body, aeskey).decode() # AES encryption of body
encrypt_sign = sha256_sign(body) # Generate SHA256 signature of body
print("encrypt_data:", encrypt_data)
print("encrypt_sign:", encrypt_sign)
#encrypt_data: Encrypted body
cvaecnwEIYUodB/sEgkOXd/J3aMWh+TzdzoFhl3Fkua84Ks3RUA98IWqAIwQNYBDiOY50O+CHBSQvD32HpNk+jTtHhZlAZTAPKTmgECS1n3eXKf0P5OvPsNgRrC+KgNsboCnNQaTt8L4T/Nm975bAwilXrU+K/Jump6CLoOVYorMvJjMVUcHryz7NDo7ShGQ1sQVOWHenTI5Vd1gJ4AT+QoNjO/a6EV4qMT8LAyWJoX8LQHDzy9LjZaQEpoID/jVu8UI+ew6elo68iBCYG560lQg8TWlz0w9IuGsHCwN+E8U56vTT394IRCRkeCz1Q8AILbqxHq72/kEHHqQ9pjfNqLXX3RWnTI12r1sxqX0ylTx6L60d13WOp4JvhzvRB1P58/lOQ27pkx1TkQOfx+PeMC36htnZnKMmkiI+I2Z/jxADekOY1n9FkbCj+3IKibVpy+hJQPDQs5jW6ze1UlgVAswONjXdwWZrNSHRJdm2ck/GA8hpVgx98FkTRZG4jA3t31vKx36N6JxEh/zTrEONS5J/hF8FuTT6Pew5tBpgVJy/ZlzHrqY56FV0IqvkdZBU7qZQiIcqTIMYksLaa5L0FOjrjZBDw7Y/RvccxZ/Od4N0X7RUZrZ6mMBGIdkwGTYy0um/judYK8f2KSB8FePXhYe+TfpcqziqPnXRCKKv/L/YIrOZqkOOVNHiu7GFfP2Nb2L+osx3VQ6MbPbY4kpb/KBz22bWxt5ZCoTsB2j6arK69uxQ3bEI5bj00BcaJ7r9Udn3LCxDzixJ8vJveVeQjmwAR3JEDgkmLtPl8wsLSFCjlxGGWnnCUrLgCGHyIPcD1tZGfyPiX5cSE+iXU0qk66ubTYTRrCcAjHLS6ur/l1QuYo9bpaSNWYoqagyea/j15mZjtNMoxp0cWLWaKIENXAvDz2+qWlJc9hWcSUBUU+BwSU09QIBJhqZ/fYyOIoyZmVIY5ViKefvIYFnTk72owz3Zy07ATAU/tnp3MD+qODNLUKrqepQcRtu1vxIApLGszw+89zASlueyngen95ShA==
#encrypt_sign: Encrypted signature#
b240a632ccda6d0df1a75d79e91229848c26cfdc7eb5d60899aee22445450035
headers = {
'Authorization': 'Token sueT3jBg7l9jirwKRZkg4KbxsmIs2hiPQbKLrrNSg8q2UphI4CS3jaV7j34tEt8s',
'Is-Encrypted': '1', # Encryption Mark
'Signed': 'b240a632ccda6d0df1a75d79e91229848c26cfdc7eb5d60899aee22445450035' # Put signature in header
}
response = requests.request("POST", url, headers=headers, data=encrypt_data) # Pass the AES-encrypted body as data
content = response.content
decrypt_data = aes_decrypt(content, aeskey)
decrypt_sign = sha256_sign(decrypt_data)
signed = response.headers.get('Signed', '')
print("decrypt_data:", decrypt_data)
print("decrypt_sign:", decrypt_sign)
print("signed :", signed)
#decrypt_data: b'{"data": {}, "status": "Task name already exists for 69f531a01a9df58aa6de2487be610abb", "code": 10403}'
#decrypt_sign: 1e403b939a15857a2a670cf44daa5de6133921b701d76c01d1c108c6622010de
#signed : 1e403b939a15857a2a670cf44daa5de6133921b701d76c01d1c108c6622010de
if decrypt_sign == signed:
pass
# Subsequent processing
修改于 2025-07-03 05:53:18