任何人都能解释在生成密钥时jwk的dict中有哪些密钥吗



有人能帮忙吗??我使用以下命令在python中使用jwk生成了一个密钥,并存储在一个可变密钥中

key = jwk.JWK.generate(kty='RSA', size=512)

当我使用key.export((时,它返回了下面的dict

{'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'}

有人能解释一下这个dict中的键是什么吗?比如d,dp,dq,e,n,p,q,qi

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

有关通用密钥,请参阅RFC7517,JSON Web密钥(JWK(。例如

  • "kty";(键类型(参数
  • "孩子;(密钥ID(参数
  • "使用";(公钥使用(参数

上述";使用";参数通常具有值"0";sig";(签名(,当密钥用于JWT签名(签名/验证(时。";孩子;有助于找到用于签名验证的匹配密钥。

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

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

  • "n〃;(模量(参数
  • "e";(Exponent(参数
  • "d";(私有指数(参数
  • "p〃;(第一素数(参数
  • "q〃;(第二素数(参数
  • "dp";(第一因子CRT指数(参数
  • "dq";(第二因子CRT指数(参数
  • "气;(第一CRT系数(参数

最新更新