AES CTR 128 python加密如何工作?

时间:2020-05-28 08:16:57

标签: aes

我必须编写python程序才能插入数据,并与用PHP编写的Web服务交换数据。该Web服务公开了API的其余部分。要发送的数据需要使用python加密,并通过PHP解密。

在PHP中,数据像这样被解密

$data=AesCtr::decrypt($dataEncoded, $user->apiKey, Parameter::getGlobalParameter('aesKeyLength')); 

在python中,我这样写:

 def MyEncrypt(data,Key):
    # Encrypt the plaintext with the given key:
    # ciphertext = AES-256-CTR-Encrypt(plaintext, key, iv)
    iv = secrets.randbits(128)

EncryptedActivity = pyaes.AESModeOfOperationCTR(KeyAPI, pyaes.Counter(iv))
ciphertext = EncryptedActivity.encrypt(Activity)
return(ciphertext)


def InsertNewData(data,HasToBeEncrypted):

if HasToBeEncrypted :
    EncrypedData=base64.b64encode(MyEncrypt(data,KeyAPI))
else:
    EncrypedData=data

resultpost=requests.post(URL, data=EncrypedData, auth=Authentificaion, headers=headers)
return resultpost

ResulInsert = InsertNewData(Activity,False)

以下是API答复我的信息

“错误”:“无效的API查询”,“消息”:“” \'数据\'不正确 为方法POST编码。请求正确的API KEY“”}

我在做什么错?

预先感谢您的帮助。

0 个答案:

没有答案