我发现了这个代码片段,它正在将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')
)
这取决于private_key
对象的实现。BestAvailableEncryption
只是说您没有特定的偏好,希望库为您选择密钥的加密类型。
在OpenSSL后端(这似乎是唯一的一个(,这里选择了最佳加密,目前它选择了'aes-256-cbc'
密码。这种情况在未来的版本中可能会改变。将选择权留给实现是拥有BestAvailableEncryption
类的原因。