解决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的朋友有帮助。

posted @ 2017-08-31 17:05  {-)大傻逼  阅读(6293)  评论(0编辑  收藏  举报
欢迎转载,转载请注明本文地址。