加上登录Base64.encode64输出?

 常德锦江-余欢 发布于 2023-01-20 16:52

我正在使用Base64.encode64从API请求(我没有开发的API)中使用的HMAC创建哈希.生成的哈希有时包括"+".包含"+"的请求失败.请求没有成功.

例如,Python中的相同类型的脚本在Base64编码的哈希中从不会有"+".

以下是两个片段.同样,Python从来没有"+",Ruby有时会这样做.

有什么想法发生了什么?如何保持Ruby的base64编码不使用"+"字符?

红宝石:

hmac = OpenSSL::HMAC.digest('sha256', hmackey, request_string)
signature = URI::encode(Base64.encode64(hmac))

蟒蛇:

hmac = hmac.new(self.hmackey, urltosign, digestmod=hashlib.sha256).digest()
signature = base64.b64encode(hmac)

Sabuj Hassan.. 7

Python使用RFC 3548进行base64转换.其他语言如Ruby,Java(可能是RFC 2045),他们可能会使用不同的RFC进行转换.因此,您可能会发现很少有人正在使用/,很少有人使用+他们的编码字符串

因此,如果您需要与它们匹配,只需在编码后替换等效的字符.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有