- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 python 脚本,可以从 Azure Key Vault 检索 RSA 私钥。尝试序列化键值会给出:
ValueError: Could not deserialize key data.
key_bytes 看起来像“b'\xb8w\xb7\xce{s\xf7\xa0\xce\xba\xf5#\x07\x8b?\x1d\xc9m...”
代码:
from azure.keyvault import KeyVaultClient, KeyVaultAuthentication
from azure.common.credentials import ServicePrincipalCredentials
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives.asymmetric import dsa
from cryptography.hazmat.primitives import serialization
subscription_id = "xxx"
VAULT_URL = "xxx"
KEY_ID = "xxx"
KEY_VERSION = "xxx"
credentials = ServicePrincipalCredentials(
client_id = 'xxx',
secret = 'xxx',
tenant = 'xxx'
)
client = KeyVaultClient(credentials)
key_bundle = client.get_key(VAULT_URL,
KEY_ID,
KEY_VERSION)
key_bytes = key_bundle.key.n
p_key = serialization.load_pem_private_key(
key_bytes,
password='xxx',
backend=default_backend()
)
通过从 Blob 存储中以 .p8 格式加载 key ,上述 key 序列化可以发挥作用。 Key Vault 要求 key 以 pem 格式保存。
我尝试了不同的解码等,但在解码字节方面没有成功。任何解决此问题的帮助或提示将不胜感激。
最佳答案
注意我正在使用 jwcrypto。
不确定这是否相关,但过去几天我一直在与 JWK 作斗争。对我有帮助的一件事是 Base64 编码和解码 e 和 n( key 的指数和模数): base64.urlsafe_b64encode(n).decode()
它的作用是获取 ASCII 编码的(我相信)字节 n 值 (b'...') 并返回 base64 编码的字节,然后解码为字符串,因为这就是我的输入所需的内容。
b'\xd4b\xd3/"Vi\x8b\xce\xaf...\xf1\xec\xcd
b'1GLTLyJWaYvOrwdje1O3...OvHszQ==
'1GLTLyJWaYvOrwdje1O3...OvHszQ==
(请注意末尾的“==”,这是您希望在私钥末尾看到的内容)同样,不确定这是否有帮助。
This给出了一些参数的上下文以及我对 this 的理解文章中,您实际上无法从 Key Vault 中获取私钥,而只能获取公钥。
关于python - 使用 Python 从 Azure Key Vault 解码 JsonWebKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54868524/
我尝试生成一个公钥/私钥对,将其用于 jose4j 的 JWT 数字签名。我用Elliptic Curve Digital Signature Algorithm 我的问题是我不知道如何获取代表 ed
我在互联网上尝试了各种解决方案,但所有解决方案都以不同的方式出现问题。我写这封信是希望 StackOverflow 上熟悉类似工作流程的人或来自 Microsoft.IdentityModel.Jso
我有一个 python 脚本,可以从 Azure Key Vault 检索 RSA 私钥。尝试序列化键值会给出: ValueError: Could not deserialize key data.
我是一名优秀的程序员,十分优秀!