【发布时间】:2020-04-23 01:49:29
【问题描述】:
我有一个加密的会话密钥,需要使用 python 解密,但我真的不知道该怎么做。
我已获得密码、salt 和 hmac 密钥。我需要解码的字符串是base64编码的,解码时它是一个管道描述的密钥和到期日期(会话密钥+管道分隔符+日期时间)
“使用 AES-256-CBC 密码和使用 PBKDF2 - 基于密码的密钥派生函数 2 构建的密码对会话密钥进行加密。然后使用 HMAC 密钥对加密的有效负载进行签名。”
我将如何使用 Python 来解决这个问题?最好的库是什么?
以下是我的众多尝试之一(根据@topaco 的评论编辑):
from base64 import b64decode
import hashlib
import pyaes
import os
PASSWORD = b"password provided"
SALT = b"Salt provided"
iv = os.urandom(16)
ciphertext = "message to decode"
passcode = hashlib.pbkdf2_hmac('sha256', PASSWORD, SALT, 1000)
aes = pyaes.AESModeOfOperationCBC(passcode, iv=iv)
encrypter = pyaes.Encrypter(pyaes.AESModeOfOperationCBC(passcode, iv))
decrypter = encrypter.feed(ciphertext)
decrypter += encrypter.feed()
【问题讨论】:
-
@Topaco - 非常感谢。我还不完全在那里,但我已经根据你的评论更新了我的问题。
标签: python encryption