python - 在 Python 中加密私钥
问题描述
我有一个 DER 格式的私钥。我正在尝试将其转换为 PEM 并同时使用密码加密私钥。
这是我用来转换和加密的 openssl 命令:
> openssl rsa -aes256 -inform der -in temp_key.der -outform pem -passout pass:<password>
我正在尝试在 Python 中实现类似的逻辑,其中我有 DER 格式的内存中密钥的数据。我想将其更改为 PEM,对其进行加密,然后存储到文件中。
我不太熟悉 Python 的 Crypto 库,而且我很难找出正确的方法来转换和加密我的关键数据。
解决方案
您可以在加密模块的帮助下加载 DER 密钥并将其转储为受密码保护的 PEM 密钥,如下所示:
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization
private_key = serialization.load_der_private_key(
der_data, # assuming that "der_data" variable contains your DER key
password=None,
backend=default_backend()
)
pem_encrypted = private_key.private_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PrivateFormat.PKCS8,
encryption_algorithm=serialization.BestAvailableEncryption(b'mypassword')
)
print(pem_encrypted.decode()) # -----BEGIN ENCRYPTED PRIVATE KEY-----...
推荐阅读
- ios - CoreData fetch() 返回无序对象
- apache-spark - 根据多列将一行分成多行
- java - 如何对 Amazon Alexa 进行 REST API 调用
- regex - givenname.lastname@containsstring.domain 的 HTML5 输入模式
- tcp - TCP 和 UDP 行为
- google-chrome-extension - 将 jQuery 注入当前标签页 - chrome 扩展
- python - 修改由两个连续布尔数组选择的子数组
- java - 在 Java 中递归查找时的线程
- java - MVCAction 覆盖中的 Liferay SessionMessages 和 SessionErrors
- java - 如何将字符串值从 recyclerview 适配器传递到片段