一个'&'引发md5签名不一致问题

有时会遇到这样一个问题,本地和接口在验证数据签名时,明明两端打印出来的两个字符串如出一辙,可是md5加密后的两个密文却不同。
例如:
本地字符串:$str = "a=1&b=2&c=3";
此时将数据请求到接口,接口获取到的数据可能会变成这样:$str = "a=1&b=2&c=3";
那是由于在html中  '&'  就是  '&',而在浏览器中 '&'  只会显示成  '&' ,因此是看不出两个字符串的差异的,须要打印两个字符串的长度才能发现长度不同。
在使用http传输的过程当中,'&' 会被替换成  '&'  进行传输。
这时接口端须要执行 :$str = str_replace("&", "&", $str);
将 '&' 替换成 '&’'而后才能进行md5加密,不然加密验证是不可能经过的。html

相关文章
相关标签/搜索