任何人都可以解释生成密钥时 jwk 的 dict 中的密钥是什么

Chi*_*hip 4 jwk

任何人都可以帮忙解决这个问题吗?我使用下面的命令使用 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

jps*_*jps 9

您生成了 JWK(JSON Web 密钥),这是密钥的特殊表示形式。在您的情况下,它是一个 RSA 密钥,其中包含私钥和公钥的参数。

通用密钥请参阅RFC7517、JSON Web Key (JWK) 。例如

  • “kty”(密钥类型)参数
  • “kid”(密钥 ID)参数
  • “use”(公钥使用)参数

当密钥用于 JWT 签名(签名/验证)时,上述“use”参数通常具有值“sig”(签名)。“kid”帮助找到用于签名验证的匹配密钥。

RFC7518,JSON Web 算法 (JWA)包含算法特定部分的定义。

ne是公钥的模数和指数,所有其他都用于私钥。RFC7518的6.3节列出了RSA密钥的所有具体条目:

  • “n”(模数)参数
  • “e”(指数)参数
  • “d”(私有指数)参数
  • “p”(第一素因数)参数
  • “q”(第二素因数)参数
  • “dp”(第一因子 CRT 指数)参数
  • “dq”(二阶 CRT 指数)参数
  • “qi”(第一个 CRT 系数)参数