一个'&'引起md5签名不一致问题
2024-09-25 23:02:25
有时会遇到这样一个问题,本地和接口在验证数据签名时,明明两端打印出来的两个字符串一模一样,但是md5加密后的两个密文却不一样。
例如:
本地字符串:$str = "a=1&b=2&c=3";
此时将数据请求到接口,接口获取到的数据可能会变成这样:$str = "a=1&b=2&c=3";
那是因为在html中 '&' 就是 '&',而在浏览器中 '&' 只会显示成 '&' ,所以是看不出两个字符串的差别的,需要打印两个字符串的长度才能发现长度不一样。
在使用http传输的过程中,'&' 会被替换成 '&' 进行传输。
这时接口端需要执行 :$str = str_replace("&", "&", $str);
将 '&' 替换成 '&’'然后才能进行md5加密,否则加密验证是不可能通过的。
最新文章
- linux内核分析作业:操作系统是如何工作的进行:完成一个简单的时间片轮转多道程序内核代码
- 《IT蓝豹》完整阅读软件客户端app
- ACM/ICPC 之 拓扑排序+DFS(POJ1128(ZOJ1083)-POJ1270)
- sublime返回上一编辑位置
- [办公自动化]Wlan无法启动,无法连接无线网wifi,所有无线网都搜索不到
- hdu 3594 仙人掌图
- js中call和apply的用法和区别
- TortoiseGit上传代码到GitHub
- IOS Custom NavigationItem --写titleView
- java中String的用法
- 高效PHP程序必知的53个技巧
- unity3d教程-01-安装及使用Unity
- java的特点跨平台原理以及JDK的安装
- css实现右尖括号样式
- FIN_WAIT_2状态解释
- Oracle Instance and Database
- .NET跨平台实践:再谈用C#开发Linux守护进程 — 完整篇
- centos中安装tomcat+jenkins
- 【论文笔记】如何理解深度学习中的End to End
- K-means中的K值选择