任何人都可以帮忙解决这个问题吗?我使用下面的命令使用 jwk 在 python 中生成了一个密钥并将其存储在变量密钥中
key = jwk.JWK.generate(kty='RSA', size=512)
Run Code Online (Sandbox Code Playgroud)
当我使用 key.export() 时,它返回以下字典
{'d': 'Z1apo6KRMoS0xyqqTu7lEwZ7f_AON_tve42nSUkwXypMF1rDNj_xgIn9J5I4TvAisUaRYq82uZfYf76eMgj8uQ',
'dp': '4k-hSfYmT8H2zdHVFVQpBD-_w5G9ASSADgKn3F08AAs',
'dq': 'E4fXlCY6oT3yPTnOb3LvLxMtKDPmwoI-FLYbNP2L0-k',
'e': 'AQAB',
'kty': 'RSA',
'n': 'wuALgiButVPQy8bCnSkvU-QlBqYB5pk6rfwlcTr-csc8DOvPzekHJYWPjbP_ptAxSW3r5Bnpac1MDgMQKFjOtw',
'p': '8ZI61ugJ3WblKvY-JfkyWXUcdoGAWQB8B9VcfWRvLuM',
'q': 'zoPN8ItkA_0rf_XobRkjhYIdtoXyOLXCqYSU0i8etR0',
'qi': 'JhXuF6EDTrrPysGzsVhco4hpVsSHCXgS7UGZUISc2Ug'}
Run Code Online (Sandbox Code Playgroud)
谁能解释一下这个字典中的键是什么,例如 d、dp、dq、e、n、p、q、qi
您生成了 JWK(JSON Web 密钥),这是密钥的特殊表示形式。在您的情况下,它是一个 RSA 密钥,其中包含私钥和公钥的参数。
通用密钥请参阅RFC7517、JSON Web Key (JWK) 。例如
- “kty”(密钥类型)参数
- “kid”(密钥 ID)参数
- “use”(公钥使用)参数
当密钥用于 JWT 签名(签名/验证)时,上述“use”参数通常具有值“sig”(签名)。“kid”帮助找到用于签名验证的匹配密钥。
RFC7518,JSON Web 算法 (JWA)包含算法特定部分的定义。
n和e是公钥的模数和指数,所有其他都用于私钥。RFC7518的6.3节列出了RSA密钥的所有具体条目:
- “n”(模数)参数
- “e”(指数)参数
- “d”(私有指数)参数
- “p”(第一素因数)参数
- “q”(第二素因数)参数
- “dp”(第一因子 CRT 指数)参数
- “dq”(二阶 CRT 指数)参数
- “qi”(第一个 CRT 系数)参数
| 归档时间: |
|
| 查看次数: |
2262 次 |
| 最近记录: |