问题标签 [base64url]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
url - 基于字符串的数据编码:Base64 vs Base64url
我在 JSON Web 令牌之类的东西中看到的 Base64 和 Base64url 有什么区别?
data-uri - 是否可以作为加载数据 url 的出路
我有这个 JavaScript 代码和 Html 代码。代码刷新并加载了 dataurl,但此代码在 2017 年停止工作,浏览器不再加载它。
html:
JavaScript:
这已经是 2019 年了,一些知识渊博的人已经解决了这个问题,这将是很棒的。谢谢
python - 将 ^I 分隔文件转换为 pandas 数据框
我正在使用以下代码从 gmail 附件下载 csv 文件。生成的输出文件看起来像 ^I delimited,我不确定如何将其更改为其他分隔符,以便可以将其加载到 pandas 数据框中。
输出文件内容分隔如下 - 位置 ID^IProcessed Currency Code^IExternal MID^IDBA Name
编辑 1: 现在我使用制表符作为分隔符,但在将文件读入数据框时出现不同的错误。也许,它与 urlsafe_b64decode 或 data.encode('UTF-8') 有关,但我无法理解。gmail 中的实际附件文件是制表符分隔文件。
UnicodeDecodeError:“utf-8”编解码器无法解码位置 0 的字节 0xff:无效的起始字节
dart - 如何在 Flutter/Dart 中对 Base64 和 Base64Url 进行编码和解码
我想在 Flutter 的 Base64Url 中对以下字符串进行编码,并在 Dart 服务器上对其进行解码。
我怎么做?我如何在 Base64 中做到这一点?
dart - 我是否需要从 Dart 中的 Base64Url 编码字符串中手动删除 = 填充?
我惊讶地发现,当我在 Dart 中将字符串转换为 Base64Url 时,我得到了一个以=
填充字符结尾的字符串。
我认为 Base64Url 的目的是删除 URL 中不好的字符。显然不是。文档甚至列出了它。那么这是否意味着我必须自己手动删除它?
java - Java 8 Base64 JWT 令牌转换为 JSON
因此,我在网上和 StackOverflow 上对此进行了一些研究,并尝试了许多我发现的多个建议。问题是我正在登录我们运行良好的 Oauth2 服务之一。我得到了一个 Oath2 JWT 令牌。我知道这是 Base64 编码的,我可以将令牌放入 jwt.io 和 www.base64decode.org 并且这两个站点都正确解析了令牌。
我正在使用 Java 8 Base64 工具,代码如下所示:
解码器线上出现的错误如下:
我用我的 Oauth2 服务的令牌尝试了这个,我从 Syncope 获得了一个令牌,我从 Auth0 获得了一个令牌......所有返回的都是 JWT Base64 编码的令牌。使用来自这些不同服务器的所有这些令牌,我得到相同的错误。
我想使用标准的 Java 8 Base64,但我认为我可能需要使用外部第三方 Base64 解码器。
任何帮助都会很棒。谢谢!
令牌如下:
更新:
我从 java,util.Base64 切换到 org.apache.commons.codec.binary.Base64 这似乎有点工作,我现在没有收到错误。
给我一个标题、有效负载和签名数据的字符串。所以,当我这样做时:
我只取回标头数据,而我真正需要的是有效载荷。
作为记录......我从“概念证明”项目继承的代码是:
并且根本没有单元测试。所以,当我去单元测试它时,它当然完全坏了。所以,现在我对如何解析这个token有了更好的理解,我会记住这个教训很长时间。
非常感谢!
hash - 为什么要使用带有 JSON Web 令牌的 base64 URL 编码?
场景:
我正在此链接(https://medium.com/vandium-software/5-easy-steps-to-understanding-json-web-tokens-jwt-1164c0adfcec)上阅读有关 JSON Web 令牌的信息。它概述了如何创建 JSON Web 令牌、创建标头和有效负载,然后使用以下伪代码创建签名:
我的问题:
为什么base64urlEncode
在创建data
and时使用伪代码signature
?
到目前为止我所了解的范围:
Base64 允许您使用 Base64 64 个文本字符集中的文本字符来表示二进制数据。这通常在您有一组数据要通过某个通道传递时使用,这些通道可能会误解某些字符,但不会误解 Base64 字符,因此您使用 Base64 对其进行编码,这样数据就不会被误解。另一方面,Base64 URL 编码类似于 Base64 编码,只是您只使用了 Base64 字符集的一个子集,该子集不包括 URL 中具有特殊含义的字符,因此如果您使用 Base64 URL 编码的字符串URL,其含义不会被误解。
假设我的理解是正确的,我试图理解为什么base64urlEncode()
在计算data
和signature
上面的伪代码中使用。JSON Web 令牌的签名会在 URL 中的某处使用吗?如果是这样,为什么data
base64urlEncode
d 在散列之前也是如此。为什么不直接对签名进行编码?哈希函数是否需要对其data
参数进行 Base64 URL 编码?
vue.js - 如何在 vuejs 中使用 axios 显示带有令牌的图像
我有一个 api rest,它返回与图像关联的文章列表,该服务需要一个令牌。
我遇到的问题是在尝试显示文章的图像时,因为它们需要令牌。我展示了部分代码来帮助我提出您的建议。
模板
方法
我从 axios 的主要语句发送的令牌,当我检查浏览器控制台时,我可以正常看到图像,但是在图像 src 中我得到 src = 'data: image / jpeg; base64,[对象承诺]'
go - 向 base64url 字符串添加换行符
我有一个发送 base64url 编码字符串的程序,但我读到了 base64 不支持“\”字符的地方。我的目的是在 Go 中使用Gmail API发送电子邮件。身体部分由以下部分组成:
当我通过 Gmail API 发送电子邮件时,我需要传递一个 base64url 字符串。我有以下功能来处理:
我已经在这篇文章之后将标题信息添加到 msg中,并将内容类型设置为text/html; charset=\"utf-8\"
. 然后,我使用以下方法创建 Gmail 邮件:
当电子邮件通过时,它看起来像这样:
姓名:这是电子邮件的正文 真诚的,发件人姓名
但我希望每个 '\n' 都放入实际的换行符。感谢您的帮助,我是 Go 的 Gmail API 的新手。
c++ - 使用 openssl 和 C++ 验证 JWT 的确切 base64 url 解码规则和实现是什么
我对openssl接口和base64解码规则很陌生,并尝试使用解决方案验证用私钥(RS256 alg)签名的JWT:Segmentation Fault while verifying JWT token using a public key through openSSL in C++但是我的示例JWT失败了验证。
我只是没有base64 url解码功能,所以我按照我的理解手动执行了这些步骤-在调用我的base64解码功能之前,我替换了'-'->'+'和'_'->'/'。为了能够获得正确的签名长度,我还必须手动添加填充('=')。是否有一些我遗漏的base64 url解码规则,或者首先替换符号的方法是否有任何错误?
我首先尝试使用 RSA_verify,但错误是一样的。
使用 python 和在线 JWT 验证来验证相同的令牌和密钥,所以它们应该没问题。我在gdb上的十六进制b64解码和python上的urlsafe_b64decode之后打印了签名,并且值是相同的(除了python版本末尾的一些符号),这更让人相信替换策略应该是在职的。
错误是: