gpt4 book ai didi

ruby - 在 ruby​​ 2.2 上没有填充的 Base64 编码

转载 作者:太空宇宙 更新时间:2023-11-03 16:44:54 26 4
gpt4 key购买 nike

我正在尝试在没有填充的情况下对 ruby​​ 2.2(环境限制)中的某些内容进行 base64 编码。我知道在 ruby​​ 2.3 中,base64 库添加了一个可以为我执行此操作的填充标志。但是,当我尝试使用

在 ruby​​ 2.2 中自己执行此操作时
Base64.urlsafe_encode464(str).gsub('=', '')

然而,这在解码时给我带来了问题。有没有办法在使用 ruby​​ 2.2 的同时更新到最新的 base64 库?或者是否有一种好的方法来进行可以正确解码的 urlsafe base64 编码?

最佳答案

MRI Ruby 版本 < 2.3.x 不支持在没有填充的情况下解码 Base64 内容(编码内容最初包含它的地方)。

以下 Ruby 错误报告显示了更改的历史记录,以支持在没有 Ruby 2.3 及更高版本的情况下删除填充和解码。但是,如果您尝试使用在旧版本的 Ruby 中添加的“填充”arg,它会失败并出现 ArgumentError。这使得很难在新旧 Rubies 之间支持无填充编码/解码。

https://bugs.ruby-lang.org/issues/10740

我发现的一个很好的解决方案是“base64url”gem,它适用于 Ruby 版本,并根据编码/解码需要自动删除和重新添加填充。它很轻巧,只有大约 11 行代码。

https://github.com/nojima/base64url

关于ruby - 在 ruby​​ 2.2 上没有填充的 Base64 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35308637/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com