一個'&'引發md5簽名不一致問題

有時會遇到這樣一個問題,本地和接口在驗證數據簽名時,明明兩端打印出來的兩個字符串如出一轍,可是md5加密後的兩個密文卻不同。
例如:
本地字符串:$str = "a=1&b=2&c=3";
此時將數據請求到接口,接口獲取到的數據可能會變成這樣:$str = "a=1&b=2&c=3";
那是由於在html中  '&'  就是  '&',而在瀏覽器中 '&'  只會顯示成  '&' ,因此是看不出兩個字符串的差異的,須要打印兩個字符串的長度才能發現長度不同。
在使用http傳輸的過程當中,'&' 會被替換成  '&'  進行傳輸。
這時接口端須要執行 :$str = str_replace("&", "&", $str);
將 '&' 替換成 '&’'而後才能進行md5加密,不然加密驗證是不可能經過的。html

相關文章
相關標籤/搜索