基于此文章:如何在jwks_uri端点中为OpenID Connect发现返回RSA密钥
我需要对这两个数字的八位字节值进行base64url编码:
n = 124692971944797177402996703053303877641609106436730124136075828918287037758927191447826707233876916396730936365584704201525802806009892366608834910101419219957891196104538322266555160652329444921468362525907130134965311064068870381940624996449410632960760491317833379253431879193412822078872504618021680609253
e = 65537
参数“ n”(模数)包含RSA公钥的模数值。它表示为Base64urlUInt编码的值。请注意,实施者已经发现,某些密码库在它们返回的模数表示前加上一个额外的零值八位字节,例如,对于2048位密钥而不是256位,返回257个八位字节。使用此类库的实现需要注意以下几点:省略base64url编码表示形式中的额外八位位组。
“ e”(指数)参数包含RSA公钥的指数值。它表示为Base64urlUInt编码的值。例如,当表示值65537时,要以base64url编码的八位字节序列必须由三个八位字节[1、0、1]组成;该值的结果表示为“ AQAB”。
例如,有效的编码应如下所示:https : //www.googleapis.com/oauth2/v3/certs
¿如何在Python中执行此操作?
在寻找解决此问题的最佳方法之后,使用pyjwkest似乎是一个不错的选择,而不是创建自己的函数。
pip install pyjwkest
然后我们long_to_base64
为此使用函数
>>> from jwkest import long_to_base64
>>> long_to_base64(65537)
'AQAB'
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句