对数据进行签名

之前看到v2ex上的一个帖子https://www.v2ex.com/t/326285,然后回想一下对接支付宝和微信的时候,其实都有过类似的处理。

然后照着这个思路写了一个package,https://github.com/liyu001989/signature

基本思路

首先如果目标数据是个数组,就需要先进行ksort排序,然后在转换为字符串,转换字符串自然就想到用json_encode了。最后进行签名,调用hash_hmac或者私钥签名。

使用场景

其实使用的场景还是挺过的,首先就是对于webhook这类的通知,想象一下支付宝支付成功了之后的异步通知,我们怎么确定这个通知是支付宝发起的,数据是否有效,是否被篡改,那么加上签名就很有用了。

还有就是,如帖子中所说,确定客户端的身份,保证客户端发起的请求不会被伪造,也不会被篡改。这个客户端的定义应该很广了,app,服务器等等。大家对接各种第三方应用的时候应该都有过类似体验。

最后欢迎start和指正

本帖已被设为精华帖!
本帖由系统于 8年前 自动加精
liyu001989
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!