首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包含非标准字符的SHA1

包含非标准字符的SHA1
EN

Stack Overflow用户
提问于 2016-04-20 22:36:07
回答 1查看 30关注 0票数 0

我正在实现一个在线支付系统: Paybox。

我有一个自动响应(在服务器之间)和一个响应(附加到我的客户时,他返回我的网站)。

除了签名是一个SHA1之外,一切都很好。在自动响应方面,我有一个有效的标志:

代码语言:javascript
复制
ahkjqBWxsi2rMXWpQr9LaQFelTIGJ93pKfGt2E6lT1sIKABsNanexC0gZvt5Z8ShgQXUsGBS10QVPzUxmYDhWpuDKIiHDZ5i9mLm2UGz8LOJeGkIlikuXOCC3ny

但是,对于客户(此测试中的我),我有:

代码语言:javascript
复制
ah8R%2F2mvvpc8Jo016XyO7WZbqmQktb%2BShME6A0X3hwCNWkkGXb1YI9wIS7RSCK1IJKotbYni8BxBNoHTKcLxdA9nOQPcQSD%2FUM3%2BdiptrnTuLZ1jP9bIDCvDtSav7WG509gw5PbEztpl5lOZlnIFuCMzC3Ps%2B2Rt%2FO6PSZfHgvA%3D

我不明白:

1)为什么它们不同。

2)为什么第二个有不能从SHA1输出的'%‘字符

我想过一种不同的编码,但到目前为止还没有,有什么想法吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2016-04-20 22:49:07

%2F%2B是URL编码字符;分别是/+

您可能会看到它们,因为它们可以出现在Base64编码的字符串中,这就是您所拥有的(尽管在第一个示例中没有它们),因为您不能将原始的SHA1散列表示为字符串。

在许多情况下,您不能使用HTTP发送包含原始形式字符的字符串,因为它们具有特殊含义,请参阅Passing base64 encoded strings in URL

假设编码/解码和SHA1代码正常工作,那么这两个散列不同的原因是因为输入数据不同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36747192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档