2

我找到了这个代码片段,这里将 RSA 私钥序列化为加密的密文。我想知道这段代码serialization.BestAvailableEncryption(b'mypassword')中将使用哪种算法来做到这一点。

from cryptography.hazmat.primitives import serialization
pem = private_key.private_bytes(
      encoding=serialization.Encoding.PEM,
      format=serialization.PrivateFormat.PKCS8,
      encryption_algorithm=serialization.BestAvailableEncryption(b'mypassword')
)
4

1 回答 1

2

这取决于private_key对象的实现。BestAvailableEncryption只是说您没有特定的偏好,并希望库为您选择密钥的加密类型。

在 OpenSSL 后端(似乎是唯一的后端)中,此处选择了最佳加密,它当前选择'aes-256-cbc'密码。这可能会在未来的版本中改变。将选择留给实现是拥有BestAvailableEncryption该类的原因。

于 2020-04-12T04:45:43.613 回答