在Python中获取整数的big-endian字节序列

胡安弗里斯

基于此文章:如何在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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Python按字节读取文件,直到字节序列

如何根据字节序列计算整数

从char获取字节序列(u8)

UTF-8中的无效字节序列(ArgumentError)

如何计算文件中字节序列出现的次数?

`scan':UTF-8中的无效字节序列(ArgumentError)

UTF-8中的PUPPET无效字节序列

ArgumentError UTF-8中的无效字节序列

Openshift:UTF-8中的无效字节序列

删除Powershell中的一些字节序列

如何在Java中围绕字节序列拆分字节数组?

constexpr中的字节序

如何将文件中的字节序列写入字节数组而不用空字节填充数组?

为什么在ruby 2.0中出现“ ArgumentError-US-ASCII中的无效字节序列”

Python 3时,BeautifulSoup出现“非法多字节序列”错误

erubis:`scan':US-ASCII 中的字节序列无效(ArgumentError)

Rails导入CSV错误:UTF-8中的字节序列无效

高速缓存中的命中率-读取长字节序列

带Rails的UTF-8中的重复无效字节序列

无法使用Ruby安装gem:“ UTF-8中无效的字节序列”

Jekyll指出Liquid Exception:documentation.html中的US-ASCII字节序列无效

使用Java在二进制文件中搜索字节序列

bot导致Ruby on Rails“ UTF-8中无效的字节序列”

Perl:将字节序列打包到字符串中

是否可以在postgres文本列中存储无效的UTF-8字节序列?

在PHP的二进制文件中搜索字节序列?

Fastlane iOS update_info_plist“ UTF-8中的无效字节序列”

液体异常:_layouts / redirect.html中的US-ASCII无效字节序列

由于 UTF-8 中的字节序列无效,Logstash 无法加载