网站Sign算法 特殊符号导致加密错误

xlsznet 2020-01-04 01:29:37
一个sign算法 原理很简单

代码如下



public string GetSig(string request, string body)
{
string result = request + body;
result = web.UrlDecode(result, Encoding.UTF8);
UrlHelper url = new UrlHelper(result);
result = url.Sort();
debug.WriteLine(result);
result = result.Replace("&", "");
debug.WriteLine(result);
result = Encoding.UTF8.GetBytes(result).Md5().ToHex().ToLower();
return result;
}

当body参数里面包含URL地址的时候 服务器提示签名错误

例如: referer=http://https://bbs.csdn.net/topics/new?forum_id=CSharp&id=1

经过调试 原因是参数里面包含了&字符 导致的分割错误

请教各位大神 应该如何处理
...全文
190 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 2020-01-06
  • 打赏
  • 举报
回复
但是我比较奇怪的是, 你的方法里 result = result.Replace("&", ""); 把&替换了。 那你提交前,也需要同样的规则来设置sign。这样应该也没问题啊
正怒月神 2020-01-06
  • 打赏
  • 举报
回复
那你就 encode一下。
  • 打赏
  • 举报
回复
引用 3 楼 大西瓜一块五一斤♏的回复:
不知道你的签名参数是语言怎样的,一般都是要原始的键值然后加密钥md5,你获取自己的参数是否进行urldecode
语言=>组合
  • 打赏
  • 举报
回复
不知道你的签名参数是语言怎样的,一般都是要原始的键值然后加密钥md5,你获取自己的参数是否进行urldecode
xlsznet 2020-01-05
  • 打赏
  • 举报
回复
引用 1 楼 大西瓜一块五一斤♏ 的回复:
你这参数forum_id值就是CSharp&id=1,而不是有forum_id跟id?


你理解错我的意思了, 我是意思是 原始url像这样 http://www.xxx.com/api/r/emotion/package/list?app=1.1&client=android&referer=http://https://bbs.csdn.net/topics/new?forum_id=CSharp&id=1

当referer参数里面包含了&符号的时候 签名计算错误,我把&符号替换成%26也不对
  • 打赏
  • 举报
回复
你这参数forum_id值就是CSharp&id=1,而不是有forum_id跟id?
【完整课件如下】 MySQL从入门到精通 第01章 初始MySQL(共19页).ppt MySQL从入门到精通 第02章 MySQL的安装与配置(共14页).ppt MySQL从入门到精通 第03章 数据库的基本操作(共11页).ppt MySQL从入门到精通 第04章 数据表的基本操作(共26页).ppt MySQL从入门到精通 第05章 数据类型和运算符(共17页).ppt MySQL从入门到精通 第06章 MySQL函数(共76页).ppt MySQL从入门到精通 第07章 查询数据(共48页).ppt MySQL从入门到精通 第08章 插入、更新与删除数据(共10页).ppt MySQL从入门到精通 第09章 索引(共11页).ppt MySQL从入门到精通 第10章 存储过程和函数(共19页).ppt MySQL从入门到精通 第11章 视图(共20页).ppt MySQL从入门到精通 第12章 触发器(共11页).ppt MySQL从入门到精通 第13章 用户管理(共25页).ppt MySQL从入门到精通 第14章 数据备份与还原(共21页).ppt MySQL从入门到精通 第15章 MySQL日志(共22页).ppt MySQL从入门到精通 第16章 性能优化(共18页).ppt MySQL从入门到精通 第17章 MySQL Workbench5.2 的使用(共15页).ppt MySQL从入门到精通 第18章 MySQL Replication(共27页).ppt MySQL从入门到精通 第19章 MySQL Cluster(共49页).ppt MySQL从入门到精通 第20章 PHP操作MySQL数据库(共7页).ppt MySQL从入门到精通 第21章 MySQL实战-新闻发布系统数据库设计(共6页).ppt MySQL从入门到精通 第22章 MySQL实战-论坛管理系统数据库设计(共6页).ppt

110,896

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧