python - 使用 python 解密 Amazon SP API 报告文档。 AES、CBC、base64

标签 python encryption aes python-cryptography amazon-kms

我正在尝试解密报告文档。我有以下解密细节:

{
"payload": {
    "reportDocumentId": "XXXX",
    "encryptionDetails": {
        "standard": "AES",
        "initializationVector": "XXXX",
        "key": "XXXX"
    },
    "url": "https://XXXXX"
}}
使用这些细节,我尝试编写各种代码,给出不同的错误
1.
from base64 import b64encode 
import hashlib 
import pyaes 
import os
from sys import getsizeof

content = requests.get(url)
ciphertext = content.text
#ciphertext = b64encode(bytes(content.text))
print(getsizeof(key))
print(getsizeof(iv))
decrypter = pyaes.Decrypter(pyaes.AESModeOfOperationCBC(key, iv)) 
decryptedData = decrypter.feed(ciphertext) 
decryptedData += decrypter.feed()
print(decryptedData)
这显示了以下错误: ValueError: 初始化向量必须是 16 字节
我的初始化向量和 key 在 base64 中。它们的大小分别为 73 和 93
2.
content = requests.get(url)

message = content.text
print(len(message))

obj = AES.new(key, AES.MODE_CBC, iv)
print(obj.decrypt(message))
这给出了以下错误: ValueError:AES key 长度不正确(44 字节)
我该如何解决这个问题?除此之外的任何方法也将非常有帮助
AWS KMS 是否有助于解密此类数据?

最佳答案

content = requests.get(url)
message = content.content
dec_key = b64decode(key)
dec_iv = b64decode(iv)
obj = AES.new(dec_key, AES.MODE_CBC, dec_iv)
decrypt_text = obj.decrypt(message)
修改后的代码给出了所需的输出。解码 key 和iv。
这个答案不是我的,我是从关于 stackoverflow 的各种问题中收集到的。写给任何可能需要它的人。

关于python - 使用 python 解密 Amazon SP API 报告文档。 AES、CBC、base64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66856748/

相关文章:

python - 如何计算python的timedelta

python - 在命令行和 GUI 程序之间共享首选项

node.js - 在 Node.js 中使用私钥/公钥加密文件最合适、最安全的方法是什么

c# - 将 RijndaelManaged 代码转换为 AesManaged 代码

python - 我的python客户端向c服务器发送一个整数,但服务器收到0

python - Python 中的逐元素乘法相当于 Matlab

Swift如何导入rsa key

java - Java 中的 AES-128 加密

java - Java 中的 PKCS5_PBKDF2_HMAC_SHA1

.net - 使用 AesManaged 解密之前验证 key /IV ?或者在 CryptographicException 发生之前避免它?