解決php的sha1和java的sha1(DigestUtils.sha1Hex)產生的字符串不相等的問題


  最近對接某個第三方服務,其中對接某些api需要用到他們的簽名回調,根據他們傳來的get參數和apiSecret進行拼接並使用sha1加密,然后返回弄成jsonp的格式返回,出於菜鳥的本能,首先是下載了他們的demo進行查看,發現只有java的版本,使用了DigestUtils.sha1Hex函數對字符串進行了sha1加密。

String signToken = String.valueOf(DigestUtils.sha1Hex(message + apiSecret));

  然后我也如法炮制,使用了php的sha1進行加密,發現輸出字符串和java上面的函數輸出不同,自然也不能通過他的sign驗證,這時候百度了國內很多資料都查不出解決方案,最后在stackoverflow找到了答案,如此使用就可以解決了:

$sign = sha1($str, false);

  希望對有需要對接api的朋友有幫助。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM