对数据进行签名
之前看到v2ex上的一个帖子https://www.v2ex.com/t/326285,然后回想一下对接支付宝和微信的时候,其实都有过类似的处理。
然后照着这个思路写了一个package,https://github.com/liyu001989/signature
基本思路
首先如果目标数据是个数组,就需要先进行ksort排序,然后在转换为字符串,转换字符串自然就想到用json_encode了。最后进行签名,调用hash_hmac或者私钥签名。
使用场景
其实使用的场景还是挺过的,首先就是对于webhook这类的通知,想象一下支付宝支付成功了之后的异步通知,我们怎么确定这个通知是支付宝发起的,数据是否有效,是否被篡改,那么加上签名就很有用了。
还有就是,如帖子中所说,确定客户端的身份,保证客户端发起的请求不会被伪造,也不会被篡改。这个客户端的定义应该很广了,app,服务器等等。大家对接各种第三方应用的时候应该都有过类似体验。
最后欢迎start和指正
本帖已被设为精华帖!
本帖由系统于 8年前 自动加精